Java 线程池
12 November 2013
ExecutorService service= Executors.newFixedThreadPool(10);
service.execute(null); **线程池实现原理:**
线程池的目的是为了使线程从用,但线程start并执行run方法后就会销毁,如何才能重用就得使用一定的技巧。
jdk实现的原理是使用一个works工作队列每个work绑定一个线程,线程会一直循环执行直到收到结束信号,线程在循环执行时任务是从阻塞队列中获取的当任务队列中没有任务时任务队列将阻塞,这是线程也将暂停,直到有新的任务添加到任务队列时线程开始执行,阻塞队列的阻塞是靠[lock和Condition]实现(synchronized,Objec.wait也是同样的道理)。
CyclicBarrier 栅栏
CountDownLatch 闭锁
Semaphore 信号量
blog comments powered by Disqus