我想使用一個CyclicBarrier對象作爲靜態成員,我有多線程正在修改CyclicBarrier對象狀態,這樣做是否安全?CyclicBarrier線程安全嗎?
0
A
回答
1
的Javadoc說:
內存一致性效果:調用的await()在成功是屏障操作的一部分發生之前,行動,進而發生,之前的行動在一個線程操作之前,從其他線程中的相應await()返回。
和其他一些事情。
所以是...它是線程安全的。
1 - Javadoc中不使用的話 「線程安全的」。但是,我認爲這是因爲線程安全是一個棘手的概念。我所看到的定義有效地說,如果有多個線程,如果它是正確的(根據規範工作),則某些內容是「線程安全的」。如果你簡單地說X是「線程安全的」,它會引發一個問題:指定的行爲是什麼? 「正確」是什麼意思? javadoc通過簡單地聲明關鍵同步屬性...來避開這個問題......這是由JLS定義的一個非常精確的術語。
爲什麼我要提出這個問題?要指出的是,僅僅要求「是X線程安全的?」是膚淺的,容易引導你陷入問題......如果這是你分析的全部範圍。
6
CyclicBarrier
整點是爲了同步多個線程。改變狀態的唯一方法是await
(有和沒有超時)和reset
,這些方法的文檔清楚地描述了它們如何與其他線程交互。
是的,它是線程安全的。
相關問題
- 1. java線程安全:線程安全嗎?
- 2. Spring mongoTemplate線程安全嗎?
- 3. Lparallel.queue線程安全嗎?
- 4. BoxClient線程安全嗎?
- 5. EventHubClient.SendBatchAsync - 線程安全嗎?
- 6. .NET:JsonMediaTypeFormatter線程安全嗎?
- 7. multiset equal_range線程安全嗎?
- 8. pip線程安全嗎?
- 9. com.google.cloud.datastore.Datastore線程安全嗎?
- 10. WNetGetResourceInformation線程安全嗎?
- 11. qsort線程安全嗎?
- 12. work_queue線程安全嗎?
- 13. .NET DateTime線程安全嗎
- 14. DynamoDBContext線程安全嗎?
- 15. 在Python線程安全嗎?
- 16. java.lang.reflect.Method線程安全嗎?
- 17. HttpContext.Current.Cache線程安全嗎?
- 18. UIFont線程安全嗎?
- 19. C#+ =線程安全嗎?
- 20. Go bytes.Buffer線程安全嗎?
- 21. SynchronizationContext.Post()線程安全嗎?
- 22. Guava Table線程安全嗎?
- 23. EPiServer線程安全嗎?
- 24. 是java.sql.Connection線程安全嗎?
- 25. 是CreateChildContainer()線程安全嗎?
- 26. 是Thread.getStackTrace()線程安全嗎?
- 27. Windows'rand_s線程安全嗎?
- 28. 是DocumentBuilder.parse()線程安全嗎?
- 29. 是javax.sql.DataSource線程安全嗎?
- 30. putStrLn線程安全嗎?
爲什麼你有懷疑? –
我無法在網上找到確保線程安全的東西,如果兩個線程同時嘗試更改狀態,它會永久等待嗎? –
https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CyclicBarrier.html –