并发编程中的屏障技术详解
1. 静态树屏障
在并发编程中,屏障是一种重要的同步机制。之前的屏障要么存在争用问题(如简单屏障和反转感知屏障),要么存在过多的通信开销(如组合树屏障)。而静态树屏障则提供了一种既能实现静态布局又能降低争用的解决方案。
1.1 树屏障内部节点类
树屏障的内部节点类 Node 定义如下:
private class Node {
AtomicInteger count;
Node parent;
volatile boolean sense;
public Node() {
sense = false;
parent = null;
count = new AtomicInteger(radix);
}
public Node(Node myParent) {
this();
parent = myParent;
}
public void await() {
boolean mySense = threadSense.get();
int position = count.getAndDecrement();
if (position == 1) { // I’m last
if (parent != null) { // Am I root?
parent.await();
超级会员免费看
订阅专栏 解锁全文
713

被折叠的 条评论
为什么被折叠?



