使用Lock锁顺序执行线程(lock锁实现)

使用Lock锁顺序执行线程(lock锁实现)

编码文章call10242025-07-16 13:46:363A+A-

要求:A线程打印一个1,B线程打印两个2,C线程打印三个3。顺序执行,并且循环打印10次。我们直接看代码:


我们理解下上面的代码:

1、标识位number:它的值代表着哪个线程可以运行。

2、Condition:可以理解为是钥匙的作用,一把锁lock可以有多把钥匙,当钥匙处于失效状态(condition1.await()阻塞),那么当前线程就处于阻塞状态,需要等待唤醒。通过钥匙来控制线程的执行状态。

3、唤醒signal:当Condition对象调用signal的时候,表示当前钥匙唤醒,拥有当前这把钥匙的线程开始执行下面的代码。

4、unlock:释放锁,锁用完必须要释放,不然会造成死锁的现象。一般配合try{}finally{lock.unlock();};这样使用。

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4