首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >R-bound如何等待Peterson Lock?

R-bound如何等待Peterson Lock?
EN

Stack Overflow用户
提问于 2018-05-18 12:39:24
回答 1查看 0关注 0票数 0

我认为r-bound等待意味着k-bound等待所有k> r。那么这个问题是没有意义的,因为彼得森应该满足r有界等待所有r。

问题是要求对Peterson算法进行“简化”,因为它要求放宽约束条件?

我有这样的代码:

代码语言:javascript
复制
1 class Peterson implements Lock {
2     // thread-local index, 0 or 1
3     private volatile boolean[] flag = new boolean[2];
4     private volatile int victim;
5     public void lock() {
6         int i = ThreadID.get();
7         int j = 1 - i;
8         flag[i] = true; // I’m interested
9         victim = i; // you go first
10        while (flag[j] && victim == i) {}; // wait
11     }
12     public void unlock() {
13         int i = ThreadID.get();
14         flag[i] = false; // I’m not interested
15     }
16 }
EN

回答 1

Stack Overflow用户

发布于 2018-05-18 21:39:47

让我们假设D 0 j?D 1 k,并且两个线程都位于其相应的等待部分中。在这种情况下,flag[0]==trueflag[1]==true,和victim==1; 因此,线程0可能会退出其等待部分,而线程1可能不会。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100008538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档