paip.java 线程无限wait的解决
2023-09-14 09:03:38 时间
paip.java 线程无限wait的解决
jprofl>threads>thread dump>
查看棉线程执行的code stack... 估计是.比如.BlockingQueue.wait
作者Attilax 艾龙, EMAIL:1466519819@qq.com
来源:attilax的专栏
地址:http://blog.csdn.net/attilax
解决:
1.使用poll,取代tack
poll(time):取走BlockingQueue里排在首位的对象,若不能立即取出,则可以等time参数规定的时间,取不到时返回null
2.take前判断哈BlockingQueue.size ,n是使用孪这个.
if (Sqlqueue.size() == 0) {
Thread.sleep(10);
continue;// cbb
}
str = Sqlqueue.take();
3.主线程exit前join其他线程...
try {
tdcba.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("---finish");
参考:
Java多线程(五)之BlockingQueue深入分析 - JAVA编程语言程序开发技术文章 - 红黑联盟.htm
jprofl>threads>thread dump>
查看棉线程执行的code stack... 估计是.比如.BlockingQueue.wait
作者Attilax 艾龙, EMAIL:1466519819@qq.com
来源:attilax的专栏
地址:http://blog.csdn.net/attilax
解决:
1.使用poll,取代tack
poll(time):取走BlockingQueue里排在首位的对象,若不能立即取出,则可以等time参数规定的时间,取不到时返回null
2.take前判断哈BlockingQueue.size ,n是使用孪这个.
if (Sqlqueue.size() == 0) {
Thread.sleep(10);
continue;// cbb
}
str = Sqlqueue.take();
3.主线程exit前join其他线程...
try {
tdcba.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("---finish");
参考:
Java多线程(五)之BlockingQueue深入分析 - JAVA编程语言程序开发技术文章 - 红黑联盟.htm
相关文章
- Java进阶(二十三)java中long类型转换为int类型
- import java.io 是什么意思_Java IO 详解
- java下载文件下载不动_java文件下载的问题
- java启动器_JAVA基础:Java 启动器如何查找类
- Java基础知识总结(超详细整理),java从入门到精通pdf「建议收藏」
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- Java后台接收参数出现java.lang.Integer cannot be cast to java.lang.Double错误(已解决)[通俗易懂]
- java网页安全提示_win7系统打开网页提示“应用程序已被JAVA安全阻止”的解决方法…
- java observable_java primitive type
- java线程与cpu线程_坑惨了什么意思
- java——单链表方法实现
- java date当前时间_JAVA中获取当前系统时间
- 微软出品自动化神器【Playwright+Java】系列(七) 之 元素的可操作性验证
- 【Java 虚拟机原理】线程栈 | 栈帧 | 局部变量表 | 反汇编字节码文件 | Java 虚拟机指令手册 | 程序计数器
- mybatis异常invalid comparison: java.util.Date and java.lang.String详解编程语言
- Java线程池执行的任务抛出异常看不到日志详解编程语言
- [五]类加载机制双亲委派机制 底层代码实现原理 源码分析 java类加载双亲委派机制是如何实现的详解编程语言
- Linux安装Java: 迈出第一步(linux上安装java)
- 解决Linux下重启Java程序的方法(linux重启java)
- 时间设置 Java 程序中 Redis Key 的过期时间(redisjava过期)
- 时间设置使用Java设置Redis的过期时间(redisjava过期)
- 处理Java处理Redis中过期数据的有效方法(redisjava过期)
- 数据处理使用Java从Redis中清理过期数据(redisjava过期)
- 时间设置Java代码实现Redis Key自动过期(redisjava过期)
- key数据处理Java操作Redis过期key数据的有效处理(redisjava过期)
- Linux下Java命令:简介与基本用法(linux下java命令)
- Oracle数据库中调用Java实现可扩展应用程序(oracle内嵌java)
- Oracle JE领先的企业级Java EE开发技术(oracle je)
- java多线程编程之使用thread类创建线程