亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

JMM規則簡介

2024-04-30 02:34:45
3
0

一、定義:

指兩個操作之間的執行順序,這兩個操作可以在同一線程內,也可以在不同的線程之間。因此,JMM可以通過happens-before關系 來向程序員提供跨線程的內存可見性保證。

JMM線程規范中對happens-before的關系定義如下:
1)、如果一個操作happens-before另一個操作,那么第一個操作的執行結果將對第二個操作可見。而且第一個操作的執行順序排在第二個之前;
2)、兩個操作之間存在happens-before關系,并不意味著Java平臺必須按照happens-before關系指定的順序來執行,如果重排序后的執行結果和與按照happens-before關系指定的執行順序一致,那么這種重排序未非法。

二、happens-before的規則

JMM定義了以下的happends-before 規則:
1)、程序順序規則:一個線程中的每一個操作,happens-before于該 線程中的任意后續操作;
2)、監視器鎖規則:對一個鎖的解鎖,happens-before于隨后對這個鎖的加鎖;
3)、volatile變量規則:對一個volatile域的寫,happens-before于任何后續對于這個volatile域的讀;
4)、傳遞性:如果A happens-before B,且B happens-before C,那么A happens-before于C;
5)、start()規則:如果線程A執行操作ThreadB.start(),啟動線程B,那個A線程的Thread.start() happens-before于線程B中的任何操作;
6)、join()規則:如果線程A執行ThreadB.join()并成功返回,那么線程B中的做任何操作happens-before于線程A從ThreadB.join9()成功返回;

0條評論
作者已關閉評論
chuoo
13文章數
0粉絲數
chuoo
13 文章 | 0 粉絲
原創

JMM規則簡介

2024-04-30 02:34:45
3
0

一、定義:

指兩個操作之間的執行順序,這兩個操作可以在同一線程內,也可以在不同的線程之間。因此,JMM可以通過happens-before關系 來向程序員提供跨線程的內存可見性保證。

JMM線程規范中對happens-before的關系定義如下:
1)、如果一個操作happens-before另一個操作,那么第一個操作的執行結果將對第二個操作可見。而且第一個操作的執行順序排在第二個之前;
2)、兩個操作之間存在happens-before關系,并不意味著Java平臺必須按照happens-before關系指定的順序來執行,如果重排序后的執行結果和與按照happens-before關系指定的執行順序一致,那么這種重排序未非法。

二、happens-before的規則

JMM定義了以下的happends-before 規則:
1)、程序順序規則:一個線程中的每一個操作,happens-before于該 線程中的任意后續操作;
2)、監視器鎖規則:對一個鎖的解鎖,happens-before于隨后對這個鎖的加鎖;
3)、volatile變量規則:對一個volatile域的寫,happens-before于任何后續對于這個volatile域的讀;
4)、傳遞性:如果A happens-before B,且B happens-before C,那么A happens-before于C;
5)、start()規則:如果線程A執行操作ThreadB.start(),啟動線程B,那個A線程的Thread.start() happens-before于線程B中的任何操作;
6)、join()規則:如果線程A執行ThreadB.join()并成功返回,那么線程B中的做任何操作happens-before于線程A從ThreadB.join9()成功返回;

文章來自個人專欄
文章 | 訂閱
0條評論
作者已關閉評論
作者已關閉評論
0
0