我有一個數組,這2個值,我想保持單元格獨立。例如,當一個線程獲得第一個位置的鎖定時,這個線程不會阻塞整個結構。鎖定數組的單元格
public DataStructure(int r, int i) {
this.r = r;
this.i = i;
values = new ArrayList<Integer>;
values.add(i);
values.add(r);
[...]
}
public void methodA() {
lock.lock();
[...]
values.get(0);
lock.unlock();
}
public void methodB() {
lock.lock();
[...]
values.get(1);
lock.unlock();
}
與此代碼當一個線程獲取有關methodA
這是不可能到一個不同的線程來獲得methodB
鎖的鎖。
我該怎麼辦呢?
你的意思是說你的方法應該是'synchronized'嗎? – 2014-10-17 08:50:14
@ShishirKumar不,我的意思是說,如果一個線程訪問數組的第一個位置,另一個線程可以訪問其他位置,沒有同步,但具有並行性 – 2014-10-17 08:51:55
哦,我現在明白了。 – 2014-10-17 08:53:00