zoukankan      html  css  js  c++  java
  • paip.java 线程无限wait的解决

    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
  • 相关阅读:
    转基因(转载)
    Diwali
    使用Matplotlib画图
    项目格式规范
    关于Dapper
    JQuery
    javascript封装
    2015年2月16日——作者观点
    2015年2月12日——不懂点
    在VS2013上使用git
  • 原文地址:https://www.cnblogs.com/attilax/p/15199384.html
Copyright © 2011-2022 走看看