美文网首页
一些小的Java知识点

一些小的Java知识点

作者: SMSM | 来源:发表于2022-07-13 13:28 被阅读0次
  1. 线程池参数优先级。 coreThread_size > queue_size > maxThread_size 当queue_size不够时,maxThread_size才生效

  2. 线程死锁。
    两个线程各自拥有一把锁,然后又想去占用对方的锁。所以一个线程用到多个锁的情况就很危险,必须保证用锁的顺序永远是一致的,有些隐形的场景比如
    OBJ有锁,然后BlockingQueue内部也有锁

      BlockingQueue bq;
    
     aF{
                 synchronized (obj){
                     bq.poll(10,TimeUnit.SECONDS); // WAITING 并没有释放 obj锁资源 导致bF函数线程在bp为空队列时永远无法获取obj锁
                 }
     }
    
     bF{
             synchronized (obj) {//BLOCKED
                         Log.e("smarking", "bq_test_bF");
                     }
     }
    

相关文章

网友评论

      本文标题:一些小的Java知识点

      本文链接:https://www.haomeiwen.com/subject/ivzzbrtx.html