连击 天
fork: star:
一个同事在看JDK 1.6 下AbstractCollection源码,讨论了几个问题,其中一个问题是toString,这里记录下
使用ReentrantReadWriteLock读读写锁,来实现一个阻塞队列,可以和之前的ReentrantLock的Condition比较
使用ReentrantLock和一对Condition实现一个阻塞队列,优势是使用lock可以对读写分别加锁,可以和之前Thread的wait和notify比较
ConcurrentLinedQueue是一个基于链表的无界队列(其实是有界的,它的长度是int类型)。基于wait-free算法,适合多个线程读取的场景,出队和入队使用2把锁,性能比ArrayBlockingQueue快,当然...
ArrayBlockingQueue是一个基于数组的有界队列,提供阻塞特性,此队列按 FIFO(先进先出)原则对元素进行排序。队列的头部 是在队列中存在时间最长的元素。队列的尾部 是在队列中存在时间最短...
Semaphore初始化给的许可数,只是初始许可,不代表许可的最大值,每release一次,都会增加一次许可,做流控的时候,需要特别注意
FutureTask实现了Future接口,用于可取消的异步计算,计算尚未完成,则get方法一直阻塞,可使用FutureTask包装Callable或者Runnable对象,实现了Runnable可将FutureTask提交给Executor线程池...
JUC下的Exchanger,可用于两个线程间对信息进行交换,在某些遗传算法或者管道设计中很有用
没有更多内容
加载失败,请刷新页面
文章删除后无法恢复,确定删除此文章吗?
动弹删除后,数据将无法恢复
评论删除后,数据将无法恢复