关闭

JUC源码分析26-线程池-ThreadPoolExecutor

功能说明 类图 预热 Executor ExecutorService AbstractExecutorService ThreadPoolExecutor 线程池状态 ThreadPoolExecutor大致结构 核心代码流程 execute addWorker Worker runWorker getTask processWorkerExit addWorkerFailed tryTermin...
阅读(918) 评论(3)

JUC源码分析25-队列-LinkedTransferQueue

原理 TransferQueue LinkedTransferQueue结构-Node Node节点 Node节点源码 LinkedTransferQueue结构源码 核心方法 put-offer-add untimed poll-tryTransfer transfer-take 超时的poll-tryTransfer 核心xfer 其他辅助方法 Example 前端妹子推荐Markdown排...
阅读(966) 评论(0)

JUC源码分析24-队列-CopyOnWriteArrayList,CopyOnWriteArraySet

在看LinkedTransferQueue之前看个简单点的CopyOnWriteArrayList。CopyOnWriteArrayList还是比较简单的,内部结构只有一个数组和一把锁。采用写时加锁复制数组,所有的可变操作都在新数组上进行,读则是老数组,有点读写分离意思,比ArrayList都加锁开肯定好的多,感觉适合那种读多写少的场景。 内部结构只有一个重入锁,一个数组: /** The l...
阅读(244) 评论(0)

无锁和无等待并发

原文参考:http://rethinkdb.com/blog/lock-free-vs-wait-free-concurrency/,之前看ConcurrentLinkedQueue看到wait-free的东西,百度看到这篇文章,文章比较短,翻译下练手。 有2种类型的非阻塞线程同步算法:无锁和无等待,他们的含义经常被混淆。在无锁系统中,当任何一个特定的计算可能被阻塞一段时间的时候,所有其他的cp...
阅读(531) 评论(0)

JUC源码分析23-队列-ConcurrentLinkedQueue

之前看的队列大都是基于锁来实现阻塞,ConcurrentLinkedQueue采用wait-free算法来实现'无锁'的并发队列。wait-free算法之前没听说过,只听过lock-free,大牛解析说2中不同,具体看参考,有空后面翻译下。 ConcurrentLinkedQueue基于单向链表实现线程安全的无界队列。队列元素遵循FIFO。 看下队列内部结构: /** * Node节点,一个...
阅读(426) 评论(0)
    个人资料
    • 访问:73421次
    • 积分:1471
    • 等级:
    • 排名:千里之外
    • 原创:62篇
    • 转载:76篇
    • 译文:1篇
    • 评论:16条
    最新评论