CountDownLatch原理
2019-09-20 13:03:37 0 举报
CountDownLatch原理
作者其他创作
大纲/内容
思考:CountDownLatch(-1)CountDownLatch(0)分别会怎样
latch.countDown();
使用CAS给state减1,如果原来就是0,则不处理,如果减完后等于0,则从同步等待队列中LockSupport.unpark(s.thread)
-1 :在new的时候就报错了0:await方法是不会处理的,countDown遇到0也是不做任何处理的
latch.await()
final CountDownLatch latch = new CountDownLatch(2);
如果state不等0,则将当前线程放入同步等待队列并且LockSupport.park(this);
给AQS的state赋值为2
0 条评论
下一页