多线程初识二

本文详细介绍了Java中常用的同步控制工具,如ReentrantLock、Semaphore、CountDownLatch等,并探讨了它们如何解决多线程环境下的并发问题。此外,还深入分析了ConcurrentHashMap等高性能并发容器的设计理念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

同步控制工具的使用

ReentrantLock重入锁(可重入、可中断、可限时、公平锁【解决饥饿问题】)

Condition相当于wait和notify

Semaphore共享锁,可以控制N个线程同时进入临界区

ReadWriteLock读读不阻塞,其他都阻塞

CountDownLatch倒数计时器,点火器

CyclicBarrier循环计时器

LockSupport提供线程阻塞原语 跟 suspend() 比较,suspend会导致线程挂起,而它更类似于一种许可不会挂起

ReentrantLock的实现(CAS状态共享锁的状态等,等待队列,park())



并发容器

ConcurrentHashMap 片装MAP(高并发),传统的map加锁是简单的并发方案

ConcurrentLinkedQueue 高并发

BlockingQueue 阻塞队列,优秀的共享队列



=================================================




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值