![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
lchina1314
这个作者很懒,什么都没留下…
展开
-
利用阻塞队列BlockingDeque实现生产者-消费者模式
[code="java"]import java.util.concurrent.BlockingDeque;import java.util.concurrent.LinkedBlockingDeque;/** * 消费者类 * */public class Consumer implements Runnable { private BlockingDeque ...原创 2012-11-22 16:53:33 · 308 阅读 · 0 评论 -
CountDownLatch 闭锁演示
[code="java"]import java.util.concurrent.CountDownLatch;/** * CountDownLatch 闭锁演示 * 闭锁的作用相当于一扇门:在闭锁到达结束状态(getCount()=0)前,这扇门一直是关闭的,并且没有任何线程能通过。 * 当到达结束状态时,这扇门会打开并允许所有的线程通过(可以继续执行await()之后的...原创 2012-11-23 18:02:51 · 90 阅读 · 0 评论 -
安全发布对象的常用模式
1、在静态初始化函数中初始化一个对象引用。2、将他保存到vilatile域中。3、放到final域中。4、放到并发的集合中。5、将对象的引用保存到锁保护的域中。...原创 2012-12-20 22:02:40 · 152 阅读 · 0 评论 -
线程池中newCashedThreadpool和newFixedThreadPool区别
如果编写的是小程序,或者是轻载的服务器,使用Excutors.newCashedThreadpool通常是个不错的选择,因为它不需要配置,并且一般情况下都能够正确地完成工作。但是对于大负载的服务器来说,缓存的线程池就不是很好的选择了!在缓存的线程池中,被提交的任务没有排成队列。而是直接交给线程执行。如果没有线程可用,就创建一个新的线程。如果服务器负载的太重,以致他所有的CPU都完全被占用了,当有更...原创 2012-12-22 22:58:09 · 267 阅读 · 0 评论