JAVA語言規範:線程和鎖

杜老師說 2022-01-07 10:21:03 阅读数:99

java

原文鏈接  譯者:山雞 校對:方騰飛

(本文是Oracle 官方《Java語言規範》第十七章譯文,有興趣翻譯Java語言規範的同學可以在聯系我們。)

JAVA語言規範:線程和鎖

概述:

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

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

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

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

  • 同步
  • 等待集合和通知
  • 休眠和轉交
  • 內存模型
  • Final字段語義
  • 字分開
  • double和 long 的非原子處理

 

原創文章,轉載請注明: 轉載自並發編程網 – ifeve.com本文鏈接地址: JAVA語言規範:線程和鎖

FavoriteLoading添加本文到我的收藏
版权声明:本文为[杜老師說]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/01/202201071021027213.html