CountDownLatch 怎么用
CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量,这个值只能被设置一次且后期无法更改
每当一个线程完成了自己的任务后,计数器的值就会减...1
当计数器值到达0时,它表示所有的线程已经完成了任务,然后在 闭锁上等待的线程就可以恢复执行任务
线程必须在启动其他线程后立即调用 CountDownLatch.await() 方法
这样主线程的操作就会在这个方法上阻塞...类里的方法, 简称AQS,给抽象类的
private volatile int state;
state赋值, 可以猜到 此变量就是实际用来表示计数器的值, 至于为什么要用 volatile关键字, 有兴趣的童鞋可以去看看这篇博客...inc的缓存行无效
然后线程B 也去读, 线程A还没修改, 线程B 读内存的值10 , +1 , 然后把11 写入工作内存,写入主存 volatile虽然保证线程B修改后可以另其他线程缓存行失效,..., 还需要依次唤醒被阻塞的线程
即 当前线程节点 的前一个节点 为 头节点 , 当它满足这个条件 , 同时计数器又为0
猜测应该会 将该节点移除 , 将 头节点的下一个设置为null, p.next