多线程问题求助

a5114122 2017-03-27 03:37:58
写了个多线程程序,读取xml,一条数据创建一个线程,定时向队列中加入数据。主线程循环发现队列不为空就启动一个线程处理该事件。为什么控制台输出一会之后就不运行了,按crtl+c 就会输出应该输出的东西,然后可以继续运行了。没有锁,这种情况是什么原因呢,找了很久找不到什么原因。
...全文
194 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
a5114122 2017-03-29
  • 打赏
  • 举报
回复
System.out.println("线程休眠"); Thread.sleep(1000*10); System.out.println("线程启动"); 原来问题不在第2句,而在第三句,控制台输出阻塞了,原因不知道,不过我把输出语句写到文件里,没有在出现问题,远程的那台 电脑系统是win10家庭版。
galiniur0u 2017-03-28
  • 打赏
  • 举报
回复
根据描述,一条数据创建一个线程,是不是线程数太多,没有关闭,导致资源不足卡死了。楼主给的信息太少,只能猜到这里。
a5114122 2017-03-28
  • 打赏
  • 举报
回复
楼上说的差不多,不过,为了保持循环我竟然脑抽的死循环没加sleep,导致有时候cpu占用率100%,信号丢失唤醒不了,找了半天代码的问题,今天找到原因了。
a5114122 2017-03-27
  • 打赏
  • 举报
回复
程序一直睡死,在控制台里我随便按个键然后它继续运行
  • 打赏
  • 举报
回复
可能是main线程结束了
a5114122 2017-03-27
  • 打赏
  • 举报
回复
System.out.println("线程休眠"); Thread.sleep(1000*10); System.out.println("线程启动"); 有时只能输出第一句,然后就一直睡,不看代码能知道什么原因吗
zs808 2017-03-27
  • 打赏
  • 举报
回复
代码呢

62,625

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧