Java中線程同步的簡單用法

2021-05-13 01:55:46 字數 554 閱讀 2409

應用場景:應用程式需要新建若干執行緒進行事務處理,這些執行緒處理完畢後,應用程式會進行一些後續的操作。

解決辦法:使用object.wait(),object.notify()方法。object.wait()方法會阻斷當前執行緒的執行,直到其他執行緒呼叫object.notify()。

於是可以很快的寫出乙個示例程式:

public

static

void main(string args)

} catch (interruptedexception e) }};

thread.start();

synchronized(syncobj) catch (interruptedexception e)

}system.out.println("exit");

}

呼叫wait和notify方法前,一定要用synchronized(syncobj),否則會丟擲illegalmonitorstateexception。

有空再寫寫concurrence util裡的工具類,簡化上面的操作。

JAVA中線程同步方法

在這裡看到的 1 wait方法 該方法屬於object的方法,wait方法的作用是使得當前呼叫wait方法所在部分 塊 的執行緒停止執行,並釋放當前獲得的呼叫wait所在的 塊的鎖,並在其他執行緒呼叫notify或者notifyall方法時恢復到競爭鎖狀態 一旦獲得鎖就恢復執行 呼叫wait方法需要...

java中線程同步基礎

臨界區 臨界區是乙個用以訪問訪問共享資源的 塊,這個 塊在同一時間內只允許乙個執行緒執行。重入鎖 當末個執行緒請求乙個由其他執行緒持有的鎖時,發出的請求的執行緒就會阻塞,然而內建鎖 synchronized 是可重入的,因此如果末個執行緒試圖獲得乙個已經由他自己持有的鎖,那麼這個請求就會成功。syn...

JAVA中線程同步方法

1wait方法 該方法屬於object的方法,wait方法的作用是使得當前呼叫wait方法所在部分 塊 的執行緒停止執行,並釋放當前獲得的呼叫wait所在的 塊的鎖,並在其他執行緒呼叫notify或者notifyall方法時恢復到競爭鎖狀態 一旦獲得鎖就恢復執行 呼叫wait方法需要注意幾點 第一點...