使用Lock锁顺序执行线程(lock锁实现)
要求:A线程打印一个1,B线程打印两个2,C线程打印三个3。顺序执行,并且循环打印10次。我们直接看代码:
我们理解下上面的代码:
1、标识位number:它的值代表着哪个线程可以运行。
2、Condition:可以理解为是钥匙的作用,一把锁lock可以有多把钥匙,当钥匙处于失效状态(condition1.await()阻塞),那么当前线程就处于阻塞状态,需要等待唤醒。通过钥匙来控制线程的执行状态。
3、唤醒signal:当Condition对象调用signal的时候,表示当前钥匙唤醒,拥有当前这把钥匙的线程开始执行下面的代码。
4、unlock:释放锁,锁用完必须要释放,不然会造成死锁的现象。一般配合try{}finally{lock.unlock();};这样使用。
相关文章
- Spring Boot中对接Twilio以实现发送验证码和验证短信码
- Spring Boot 3.5:这次更新让你连配置都不用写了,惊不惊喜?
- Spring Boot+Pinot实战:毫秒级实时竞价系统构建
- SpringBoot敏感配置项加密与解密实战
- SpringBoot 注解最全详解,建议收藏!
- Spring Boot 常用注解大全:从入门到进阶
- SpringBoot启动之谜:@SpringBootApplication如何让配置化繁为简
- Springboot集成Kafka原理_spring集成kafka的原理
- Spring Boot中@Data注解的深度解析与实战应用
- 大佬用1000字就把SpringBoot的配置文件讲的明明白白!
