JSR-133:Java內存模型和線程規範(翻譯)

        本文是JSR-133規範,即關於Java內存模型和線程規範,由JSR-133專家組開發。本規範是JSR-176的一部分(概括了Java平臺Tiger(5.0)發佈版的主要特性),本規範的標準內容將被合併到Java語言規範(JLS)、Java虛擬機規範(JVMS)以及java.lang包的類說明中。JSR-133規範將不再通過JCP(Java community process)維護和修改。未來所有對這些標準化內容的更新、更正以及說明都會出現在上述文檔中。

       本規範的標準化內容包含在5、7、9.2、9.3、11、12、14、15、16節中。其他章節以及上述提及的章節的部分內容,屬於非標準化內容,用以解釋和說明標準化內容。如果標準化內容和非標準化內容之間存在衝突,以標準化內容爲準。

       本規範的討論與開發異常複雜和專業,需要對一些學術論題有深刻的見解並感知其發展方向。這些討論在JMM網站上都有存檔(並且討論還在繼續)。該網站提供了額外的信息,可以幫助理解本規範的形成過程;網址是:

       該web站點以及郵件列表將持續更新和維護,並且用以幫助人們理解JSR-133規範的非標準化內容更新和擴展,可從該站點訪問到。

       來自於JLS原始規範中的兩個變化極有可能導致JVM相關實現發生變化:

  • volatile變量的語義被加強,需要有acquire和release語義。在原來的規範中,對volatile和非volatile變量的訪問操作,可被隨意排序。
  • 加強了final屬性的語義,無需顯式採用同步,不可變對象也是線程安全的。這可能需要在給final字段賦值的那些構造器末尾加上store-store之類的屏障。

1 介紹

       Java虛擬機支持多線程執行。線程通過Thread類來表示。用戶創建線程的唯一方式是創建一個Thread類的對象;每一個線程都關聯着一個Thread對象。當線程對象的start()方法被調用時,線程就會啓動。

線程的行爲,尤其是沒有正確同步時的行爲,可能會是混亂、違背直覺的。

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章