多线程
sun_blaze
Coding changes the world
展开
-
Java并发之阻塞队列
阻塞队列与普通队列的区别在于,当 队列为空时,从队列中取元素的操作将会阻塞;或者当队列是满时,往队列里添加元素的操作将会阻塞。阻塞队列的原理:public class BlockingQueue { private List queue = new LinkedList(); private int limit = 10; public BlockingQueue(int li转载 2017-11-08 20:22:11 · 285 阅读 · 0 评论 -
Java并发之读/写锁
读写锁的实现读取:没有线程正在做写操作且没有线程请求写操作 写入:没有线程正在做写操作这里假设写操作的优先级比读操作高写锁重入当一个线程已经拥有写锁,才允许写锁重入public class ReadWriteLock { private Map<Thread, Integer> readingThreads = new HashMap<Thread, Integer>();//已经持有读锁转载 2017-11-07 20:25:56 · 251 阅读 · 0 评论 -
Java并发之信号量
重入锁死当一个线程重新获取锁,读写锁或者其他不可重入的同步器时,就可能发生重入锁死。可重入的意思是线程可以重复获得它已经持有的锁避免重入锁死的方法: * 编写代码时避免再次获取已经持有的锁 * 使用可重入锁信号量Semapore(信号量)是一种线程同步结构,用于在线程间传递信号,以避免出现信号丢失,或者像锁一样用于保护一个关键区域。 下面是一个信号量的简单实现:public class Sem转载 2017-11-07 20:28:31 · 440 阅读 · 0 评论