簡體   English   中英

線程的高速緩存退出時是否會刷新到主內存?

[英]Does a thread's cache get flushed to main memory when it exits?

標題是一個問題:線程退出時,其緩存的內存是否會刷新到主內存?

我想知道,因為常見的情況是主線程創建一些線程,它們在數組的獨立部分上做一些工作(彼此之間沒有數據依賴性),主線程連接所有工作線程,然后對數組進行更多計算工作線程計算得出的值。 為了讓主線程看到副作用,是否需要將數組聲明為volatile

pthreads規范要求pthread_join()“相對於其他線程同步內存”的函數之一,因此在使用pthread時,您可以-在返回pthread_join()之后,主線程將看到對共享的所有更新。聯接線程產生的內存。

假設您正在C語言中執行此操作,並且如果數組是全局數組,或者您已將結構傳遞給線程,該結構包含線程需要在其上進行計算的索引和指向該數組的指針,則該數組不必為volatile使主線程看到更改,因為在工作線程和主線程之間共享陣列內存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM