HashTable 线程安全,效率低,锁的资源竞争
当多个额线程共享同一个HashTable时,因为加了锁,所以效率会很低,每次只能一个线程去操作HashTable
jdk1.5之后产生了很多java并发包,concurrentHashMap
分段锁:讲一个整体拆分为多个小的HashTable,默认分成16段,支持获取的完全并发和更新的所期望可调整并发的哈希表
CountDownLatch
一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。
做计数器用的
Semaphore 常用于限制可以访问某些资源(物理或逻辑的)的线程数目
ConcurrentLinkedQueue 一个基于链接节点的无界线程安全队列
并发队列有界和无界
区别于一个有限制和一个无限制
阻塞队列和非阻塞队列的区别
阻塞队列:生产者写入满的时候,就会进入到阻塞
或者当队列为空时,消费者也会等待
无界限安全队列
BlockingQueue 可阻塞,有界
ConcurrentLinkedQueue 不阻塞的,无界的
网友评论