我正在忙着查看用于n线程互斥的过滤器锁定算法,我似乎无法理解代码的第17行.我知道它在条件下旋转但不完全确定这些条件是什么.更具体地说(∃k!= me)需要什么.
1 class Filter implements Lock {
2 int[] level;
3 int[] victim;
4 public Filter(int n) {
5 level = new int[n];
6 victim = new int[n]; // use 1..n-1
7 for (int i = 0; i < n; i++) {
8 level[i] = 0;
9 }
10 }
11 public void lock() {
12 int me = ThreadID.get();
13 for (int i = 1; i < n; i++) { //attempt level 1
14 level[me] = i;
15 …Run Code Online (Sandbox Code Playgroud) 我正在尝试在创建时使指针调用复制构造函数,但似乎继续引用该对象.我当时做的完全错了.
Queue<int> * a = new Queue<int>();
Queue<int> * b = a;
Run Code Online (Sandbox Code Playgroud)
这继续引用而不是使用在堆栈分配的对象上正常工作的复制构造函数.