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
  • 相关阅读:
    Tinkoff Challenge
    Uva 12298 超级扑克2
    BZOJ 1031 字符加密
    HDU 4944 逆序数对
    51nod 1215 数组的宽度
    LA 3126 出租车
    LA 3415 保守的老师
    51nod 1275 连续子段的差异
    Uva 11419 我是SAM
    LA 4043 最优匹配
  • 原文地址:https://www.cnblogs.com/attilax/p/15199384.html
Copyright © 2011-2022 走看看