ロック
とある処理の中で、ある部分だけは1スレッドのみ実行させたい、
といった時のために、ロックという仕組みが用意されている。
使い方はこのようになる。
private static final ILock lock = Job.getJobManager().newLock();public void method() {
try {
lock.acquire();
// なんかしらの処理
} finally {
lock.release();
}
}
ILock#acquire()は、ロックが取得できるまで処理が戻ってこない。
ロックを取得できなくても一定時間で処理を戻したい場合は、
boolean ILock#aquire(long) を使う。