主記憶體與工作記憶體的互動8種操作必須遵循以下規則
阿新 • • 發佈:2019-01-06
在將變數從主記憶體讀取到工作記憶體中,必須順序執行read、load;要將變數從工作記憶體同步回主記憶體中,必須順序執行store、write。並且這8種操作必須遵循以下規則:
- 1,不允許read和load、store和write操作之一單獨出現。即不允許一個變數從主記憶體被讀取了,但是工作記憶體不接受,或者從工作記憶體回寫了但是主記憶體不接受。
- 2,不允許一個執行緒丟棄它最近的一個assign操作,即變數在工作記憶體被更改後必須同步改更改回主記憶體。
- 3,工作記憶體中的變數在沒有執行過assign操作時,不允許無意義的同步回主記憶體。
- 4,在執行use前必須已執行load,在執行store前必須已執行assign。
- 5,一個變數在同一時刻只允許一個執行緒對其執行lock操作,一個執行緒可以對同一個變數執行多次lock,但必須執行相同次數的unlock操作才可解鎖。
- 6,一個執行緒在lock一個變數的時候,將會清空工作記憶體中的此變數的值,執行引擎在use前必須重新read和load。
- 7,執行緒不允許unlock其他執行緒的lock操作。並且unlock操作必須是在本執行緒的lock操作之後。
- 8,在執行unlock之前,必須首先執行了store和write操作。
- 1,不允許read和load、store和write操作之一單獨出現。即不允許一個變數從主記憶體被讀取了,但是工作記憶體不接受,或者從工作記憶體回寫了但是主記憶體不接受。
- 2,不允許一個執行緒丟棄它最近的一個assign操作,即變數在工作記憶體被更改後必須同步改更改回主記憶體。
- 3,工作記憶體中的變數在沒有執行過assign操作時,不允許無意義的同步回主記憶體。
- 4,在執行use前必須已執行load,在執行store前必須已執行assign。
- 5,一個變數在同一時刻只允許一個執行緒對其執行lock操作,一個執行緒可以對同一個變數執行多次lock,但必須執行相同次數的unlock操作才可解鎖。
- 6,一個執行緒在lock一個變數的時候,將會清空工作記憶體中的此變數的值,執行引擎在use前必須重新read和load。
- 7,執行緒不允許unlock其他執行緒的lock操作。並且unlock操作必須是在本執行緒的lock操作之後。
- 8,在執行unlock之前,必須首先執行了store和write操作。