aspnet网站开发工具,公众号开发网站,试述网站开发的流程,求网站制作CountDownLatch是共享锁的一种实现,它默认构造 AQS 的 state 值为 count。当线程使用countDown方法时,其实使用了tryReleaseShared方法以CAS的操作来减少state,直至state为0就代表所有的线程都调用了countDown方法。当调用await方法的时候#xff0c;如果state不为0#xff0…CountDownLatch是共享锁的一种实现,它默认构造 AQS 的 state 值为 count。当线程使用countDown方法时,其实使用了tryReleaseShared方法以CAS的操作来减少state,直至state为0就代表所有的线程都调用了countDown方法。当调用await方法的时候如果state不为0就代表仍然有线程没有调用countDown方法那么就把已经调用过countDown的线程都放入阻塞队列Park,并自旋CAS判断state 0直至最后一个线程调用了countDown使得state 0于是阻塞的线程便判断成功全部往下执行。
用来进行线程同步协作等待所有线程完成倒计时。 其中构造参数用来初始化等待计数值await() 用来等待计数归零countDown() 用来让计数减一
public static void main(String[] args) throws InterruptedException, ExecutionException {CountDownLatch latch new CountDownLatch(1);Thread thread new Thread(() - {try {Thread.sleep(3000);System.out.println(子线程先执行);} catch (InterruptedException e) {e.printStackTrace();} finally {latch.countDown();}});thread.start();latch.await();System.out.println(主线程);}