04 2018 档案

摘要:Java并发编程之阻塞队列 实现线程安全的队伍有2种方式: 1. 阻塞式的, 也就是加锁 2. 非阻塞式的, 使用CAS, ConcurrentLinkedQueue就是使用的这种方式 阻塞队列提供两个附加的操作, 阻塞添加和阻塞移除: 阻塞添加: 当队列满时, 队列会阻塞添加元素的线程, 直到队列 阅读全文
posted @ 2018-04-27 21:09 第七狙击手 阅读(207) 评论(0) 推荐(0)
摘要:CountDownLatch CountDownLatch可以用于一个或多个线程等待其他线程完成操作. 示例代码 代码中, 主线程启动一个thread1线程后, 调用CountDownLatch的 方法被阻塞, 一直等到计数器减为0. CountDownLatch的构造方法接收一个参数n作为计数器, 阅读全文
posted @ 2018-04-23 22:09 第七狙击手 阅读(541) 评论(0) 推荐(1)
摘要:重入锁ReentrantLock 可以代替synchronized, 但synchronized更灵活. 但是, 必须必须必须要手动释放锁. 重入锁 是指任意线程在获取到锁之后能够再次获取该锁而不会被阻塞. 对于ReentrantLock而言, 释放锁时, 锁定调用了n次lock()方法, 那么释放 阅读全文
posted @ 2018-04-18 14:44 第七狙击手 阅读(562) 评论(0) 推荐(1)