像有一些方法如何保證Java的刷新已經在的CyclicBarrier之前已經完成或CountDownLatch使我們能夠繼續(爲synchronized關鍵字一樣)不使用的寫入緩存同步關鍵字?緩存刷新當使用synchronized關鍵字
2
A
回答
3
我覺得它已經由API保證。
http://download.oracle.com/javase/6/docs/api/java/util/concurrent/CyclicBarrier.html
內存一致性效果:在一個線程操作之前調用AWAIT()發生-之前是阻擋作用的部分,而這又發生-之前以下成功返回動作動作從其他線程中的相應await()中獲取。
由一個線程寫入的結果保證是一個僅當寫入操作之前發生讀操作另一個線程讀取可見。 ...由阻隔作用執行之前調用CyclicBarrier.await 發生,之前的屏障作用進行動作動作和動作發生,之前行動隨後從相應的等待其他線程成功返回。
這意味着
thread 1 thread 2
write x1; write x2
barrier.await(); barrier.await();
read x2 read x1
不需要額外的同步; read x2
將看到結果write x2
相關問題
- 1. 什麼是synchronized關鍵字的使用?
- 2. 學習Java,使用synchronized關鍵字
- 3. 什麼類用於關鍵字'synchronized'?
- 4. 禁用/刷新OleDbConnection緩存
- 5. Filenet用戶緩存刷新
- 6. 刷新LRU緩存
- 7. Akamai緩存刷新
- 8. Appfabric緩存未刷新 - 使用sharedId
- 9. 刷新頁面使用緩存
- 10. 使用CacheEventListener在notifyExpired上刷新緩存
- 11. 不使用`synchronized`關鍵字的線程安全代碼?
- 12. 使用synchronized關鍵字和鎖之間有什麼區別
- 13. 使用企業緩存塊立即刷新整個緩存
- 14. 使用Proc作爲緩存的關鍵
- 15. 使用新的關鍵字
- 16. 使用「新」關鍵字
- 17. Mustache.js不刷新緩存
- 18. MySQL刷新查詢緩存
- 19. Facebook緩存不會刷新?
- 20. JPA後臺緩存刷新
- 21. 自動刷新緩存
- 22. django刷新查詢緩存
- 23. Django緩存沒有刷新
- 24. dup()和緩存刷新
- 25. 刷新緩存角SPA
- 26. MvxCachingFragmentCompatActivity刷新緩存片段
- 27. iis6中的刷新緩存
- 28. 在Spring中刷新緩存
- 29. Magento緩存刷新通知
- 30. JPA2刷新緩存中CacheConcurrencyStrategy.READ_ONLY
是的,這保證了操作順序,但我沒有看到任何文字提到刷新緩存值到內存(以便等待的線程肯定會看到對方的結果) - 我的觀點是如果volatile關鍵字是必需的,以確保寫入的值將在所有等待線程剛走到低谷的屏障 –
被共享的*發生,之前*這裏是一個技術術語;如果'*發生,之前*寫x2''讀x2',讀會看到寫的效果。你可以認爲這是'緩存沖洗';雖然Java的內存模型不再使用緩存/齊平的概念。 – irreputable