软件组合、计数池与计数网络技术解析
1. 软件组合技术
1.1 预组合阶段
预组合阶段的代码如下:
synchronized boolean precombine() {
while (locked) wait();
switch (cStatus) {
case IDLE:
cStatus = CStatus.FIRST;
return true;
case FIRST:
locked = true;
cStatus = CStatus.SECOND;
return false;
case ROOT:
return false;
default:
throw new PanicException("unexpected Node state" + cStatus);
}
}
此阶段的主要逻辑为:
- 线程首先检查节点是否被锁定,若锁定则等待。
- 根据节点的组合状态( cStatus )进行不同操作:
- 若为 IDLE 状态,将状态改为 FIRST 并返回 true 。
- 若为 FIRST 状态,锁定节点,将状态改为 SEC
超级会员免费看
订阅专栏 解锁全文
5万+

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



