java concurrent

来源:互联网 发布:zank 知乎 编辑:程序博客网 时间:2024/05/18 12:29

参考: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。



0 0