参考:http://blog.csdn.net/jiangwei0910410003/article/details/20373497
jdk5推出concurrent并发工具包。
考虑性能,死锁,公平性,资源管理,线程安全性
一。
Excutor具体runnable任务的执行者
ExcutorServer:具体线程池管理者,把runnable,callable提交到线程池供其调用
semarphone:一个计数信号量
Reentrantlock:可重入的互斥锁定lock
Future:一个与runnable,callable交互的接口,比如取返回结果,提供canncel终止线程
Blockingqueue:阻塞队列
ComplationService:ExcutorSErvice扩展,可以获取执行结果
CountDownLatch:完成一组操作前,其他线程等待
CyclicBarrier:一组线程互相等待,直到达到公共点
Future:表示异步计算的结果
ScheduledExcutorService:一个ExcutorService,可以在给定延迟或定期运行。
二。
Excutor:
newFixedThreadPool:固定大小线程池,
newCacheThreadPool:无解线程池,可以进行线程回收
newsingleThreadExcutor:单个后台线程
返回的都是excutorservice对象,可以理解为一个线程池。提交任务submit,结束任务shutdown
semarphore:信号量维护了一个许可集合,在许可前阻塞每个acquire,然后获取许可,每个realease添加一个许可,释放一个正在阻塞的获取者。
只对可用许可的号码进行计数。
限制可以访问某系资源的线程数目
ReentrantLock:可重入的互斥锁定lock。