2008年6月30日月曜日

JDK1.5で追加されたロック機構

JDK1.5ではロックの機構が追加されました。
ロックといっても音楽のロックじゃなくてスレッドによるリソースのアクセス制御のほうのロックです。

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 件のコメント: