jdk并发包笔记(一)

 

同步控制工具

  • ReentrantLock :重入锁。可重入、可中断、可限时、公平锁。
  • Condition :
  • Semaphore :信号量。一个线程可申请多个信号。
  • ReadWriteLock  :读写锁。读读的情况不阻塞。
  • CountDownLatch :计时锁。当所有线程都完成时执行。初始化时count设一个数,wait的线程等到其他线程从countdown到0时候执行。常用于某些初始化的操作,初始化完成后主线程继续工作。
  • CyclicBarrier :计数器,循环使用。初始化时parties设一个数,多个线程等待,知道等待其他线程凑够数后,再一起执行。
  • LockSupport :提供线程阻塞原语。unpark\suspend。能响应中断,不抛出异常。中断响应的结果是,park()函数的返回,可以从Thread.interrupted()得到中断标志。
  • ReentrantLock的实现 :CAS状态、等待队列、park()。

 

并发容器

  • HashMap、List、Set :线程不安全。Collections.synchronizedMap(Map<K,V>) 将其封装为线程安全的,用于并发度不高的情况。
  • ConcurrentHashMap
  • BlockingQueue
  • ConcurrentLinkedQueue

 

线程池

 

public ThreadPoolExecutor(int corePoolSize,   //核心线程数
                              int maximumPoolSize,   //最大线程数
                              long keepAliveTime,     //存活时间
                              TimeUnit unit,               //存活时间单位
                              BlockingQueue<Runnable> workQueue, //任务队列
                              ThreadFactory threadFactory,  //线程工厂
                              RejectedExecutionHandler handler)   //线程拒绝策略

 

 Callable和Future

  • 非常适合在处理很耗时的业务逻辑时进行使用,可以有效减少系统的响应时间,提高系统的吞吐量。
  • 对Future模式的封装。

 

 

相关阅读

http://ifeve.com/concurrentlinkedqueue/

http://wsmajunfeng.iteye.com/blog/1629354

http://ifeve.com/java-copy-on-write/

转载于:https://www.cnblogs.com/xioruu/p/6901133.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值