我有一个类有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