我有一個類有2個方法,Read方法和Write方法。 我想讓多線程可以訪問讀取方法,只有一個線程可以訪問讀取方法。當訪問寫入方法時,讀取方法將被阻止。我應該怎麼做?java,多線程,如何封鎖另一個方法
注:閱讀答案後,我爲此寫了一小段代碼,我使用了併發包鎖。
public class ConcurrentLock {
private Lock wLock = new Lock();
private Lock rLock = new Lock();
private int i;
public static void main(String[] args){
}
public int Read(){
try {
rLock.lock();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
rLock.unlock();
}
return i;
}
public void Write(){
try {
wLock.lock();
rLock.lock();
++i;
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
wLock.unlock();
rLock.unlock();
}
}
}
在這裏你去。 http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/geninfo/diagnos/thread_basics.html – Achrome 2013-02-18 18:51:45