美文网首页
一些小的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