2013年7月18日 星期四

[Java] synchronized 的用法

Java在建立critical section是透過 synchronized這個關鍵字來實現,synchronized提供兩種語法 :

1. synchronized method

public synchronized void increment() { // critical section }
public synchronized void decrement() { // critical section }

2. Synchronized Statements 

public void increment() {
    synchronized(this) {
            // critical section
    }
}

從Synchronized Statements注意到,synchronized是針對整個物件做lock,故如果Class有多的地方使用的 synchronized功能,須注意到是否會產生deadlock。

Reference :
[1] http://docs.oracle.com/javase/tutorial/essential/concurrency/syncmeth.html

沒有留言:

張貼留言