1. 程式人生 > >基本執行緒同步(一)引言

基本執行緒同步(一)引言

宣告:本文是《 Java 7 Concurrency Cookbook 》的第二章,作者: Javier Fernández González     譯者:許巧輝 校對:方騰飛

引言

在這個章節中,我們將覆蓋:

介紹

在併發程式設計中發生的最常見的一種情況是超過一個執行執行緒使用共享資源。在併發應用程式中,多個執行緒讀或寫相同的資料或訪問同一檔案或資料庫連線這是正常的。這些共享資源會引發錯誤或資料不一致的情況,我們必須通過一些機制來避免這些錯誤。

解決這些問題從臨界區的概念開始。臨界區是訪問一個共享資源在同一時間不能被超過一個執行緒執行的程式碼塊。

Java(和 幾乎所有的程式語言)提供同步機制,幫助程式設計師實現臨界區。當一個執行緒想要訪問一個臨界區,它使用其中的一個同步機制來找出是否有任何其他執行緒執行臨界 區。如果沒有,這個執行緒就進入臨界區。否則,這個執行緒通過同步機制暫停直到另一個執行緒執行完臨界區。當多個執行緒正在等待一個執行緒完成執行的一個臨界 區,JVM選擇其中一個執行緒執行,其餘的執行緒會等待直到輪到它們。

本章展示了一些的指南,指導如何使用Java語言提供的兩種基本的同步機制:

  • 關鍵字synchronized
  • Lock介面及其實現