我想使用一个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 –