ロックといっても音楽のロックじゃなくてスレッドによるリソースのアクセス制御のほうのロックです。
JDK1.5以前のバージョンでは以下のようにsynchronizedを利用してロック機能を実現していました。
Object lock = new Object();
public void doSomething(){
synchronized(lock){
//ロックしたい処理
}
}
しかしJDK1.5ではjava.util.concurrent.locksパッケージができたことで以下のように書くこともできるようになりました。
private static Lock lock = new ReentrantLock();
public void doSomething(){
lock.lock();
try{
//ロックしたい処理
}finally{
lock.unlock();
}
}
これを使うと柔軟性の高いロック機構を実現できるようですがsynchronizedのほうが分かりやすいですね。
0 件のコメント:
コメントを投稿