閱讀146 返回首頁    go 阿裏雲 go 技術社區[雲棲]


JAVA語言規範:線程和鎖

JAVA語言規範:線程和鎖

概述:

前麵章節的大多數討論,都是關於通過單線程一次執行單個語句或者表達式。而JAVA虛擬機可以支持多線程同時執行。這些線程可以獨立執行代碼操作,而操作後所產生的值會保留在共享內存當中。單處理器和多處理器都能支持多線程,它們都是通過分配CPU時間片來執行代碼。

線程由Thread類表示。用戶創建線程的唯一方式是創建此類的一個對象;每個線程和這樣的一個對象相關。當在相應的Thread對象上調用start()方法是,一個線程將啟動。

線程的行為,特別是當不正確同步時,容易讓人混淆和違反直覺。本章節描述了多線程程序的語義,它包含被多線程更新的共享內存的值是否可見的規則。為了規範不同硬件體係結構中比較相近的內存模型,這些被稱為JAVA編程語言內存模型。當沒有出現混淆時,我們將這些規則簡稱為“內存模型”。

這些語義沒有指示應該如何執行多線程程序。相反,它們描述了允許多線程程序能表現出的行為。任何生成的執行策略允許的行為都是一個可接受的執行策略。

  • 同步
  • 等待集合和通知
  • 休眠和轉交
  • 內存模型
  • Final字段語義
  • 字分開
  • double和 long 的非原子處理
  • 轉載自 並發編程網 - ifeve.com

最後更新:2017-05-23 14:32:40

  上一篇:go  阿裏雲成為CNCF金牌會員 提供雲端Kubernetes解決方案
  下一篇:go  Cloud Card能否幹掉App