作家
登录

Java阻塞队列实现原理分析

作者: 来源: 2017-04-12 13:05:16 阅读 我要评论

  •  
  •     } 
  •  
  •  
  • remove办法:

    1. public boolean remove(Object o) { 
    2.  
    3.     if (o == nullreturn false
    4.  
    5.     final Object[] items = this.items; 
    6.  
    7.     final ReentrantLock lock = this.lock; 
    8.  
    9.     lock.lock(); // 加锁,包管调用remove办法的时刻只有1个线程 
    10.  
    11.     try { 
    12.  
    13.         for (int i = takeIndex, k = count; k > 0; i = inc(i), k--) { // 遍历元素 
    14.  
    15.             if (o.equals(items[i])) { // 两个对象相等的话 
    16.  
    17.                 removeAt(i); // 调用removeAt办法 
    18.  
    19.                 return true; // 删除成功,返回true 
    20.  
    21.             } 
    22.  
    23.         } 
    24.  
    25.         return false; // 删除成功,返回false 
    26.  
    27.     } finally { 
    28.  
    29.         lock.unlock(); // 释放锁,让其他线程可声调用remove办法 
    30.  
    31.     } 
    32.  
    33.  
    1. void removeAt(int i) { 
    2.  
    3.     final Object[] items = this.items; 
    4.  
    5.     if (i == takeIndex) { // 如不雅要删除数据的索引是取索引地位,直接删除取索引地位上的数据,然后取索引+1即可 
    6.  
    7.         items[takeIndex] = null
    8.  
    9.         takeIndex = inc(takeIndex); 
    10.  
    11.     } else { // 如不雅要删除数据的索引不是取索引地位,移动元素元素,更新取索引和放索引的值 
    12.  
    13.         for (;;) { 
    14.  
    15.             int nexti = inc(i); 

    16.   推荐阅读

        大数据在预测性维修中的应用

      核心提示: 大年夜量来自于发念头和其他一些关键部件的监控数据,使得猜测性维修具备了可行性。越来越多的数据的收集和分析对象正在被开辟或者投入应用。大年夜量来自于发念头和其他一些关>>>详细阅读


      本文标题:Java阻塞队列实现原理分析

      地址:http://www.17bianji.com/lsqh/34749.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)