Moo*_*lit 12 java concurrency file-io synchronization
在我的程序中,我有两种方法:
public void methodA() { //gets called very often
//write something to file
}
public void methodB() {
//write something to file
}
Run Code Online (Sandbox Code Playgroud)
methodA经常被客户调用,而methodB只是不时调用.但是,我需要确保无论何时客户想要调用methodB它都可以这样做(在可能的当前执行methodA完成之后).我尝试在每个方法中引入一个带锁定对象的同步块,但methodB似乎很饿,因为methodA更频繁地调用.我该如何解决这个问题?
Old*_*eon 10
听起来你需要公平 Lock.要创建其中一个,您应该true作为参数传递给构造函数.
Lock lock = new ReentrantLock(true);
public void methodA() {
lock.lock();
try {
// Write something to a file.
} finally {
lock.unlock();
}
}
public void methodB() {
lock.lock();
try {
// Write something to a file.
} finally {
lock.unlock();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
861 次 |
| 最近记录: |