java - Java线程间共享对象的最佳实践或原则

标签 java multithreading

我尝试搜索但找不到我正在寻找的确切答案,因此提出了一个新问题。

如果您希望在多个线程之间共享任何可变对象,是否有任何最佳实践/原则/指南可以做到这一点?

还是会因情况而异?

最佳答案

在线程之间共享可变对象是有风险的。

最安全的方法是使对象不可变,然后您可以自由共享它们。

如果它们必须是可变的,那么每个对象都需要使用通常的方法来确保自己的线程安全。 (同步AtomicX 类等)。

根据您使用它们的方式和用途,保护单个对象的方法会有很大差异。

关于java - Java线程间共享对象的最佳实践或原则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42508635/

相关文章:

multithreading - 生产者-消费者使用赋值

java - 获取 ID,Selenium 中当前关注的元素的类

java - 遇到 double 问题

logging - 如何使用 Log4Net 登录每个线程的单独文件?

c - 为什么我插入队列的数据没有从另一端出来?

java - Java等待方法的工作原理

java - 我如何为 Java 队列/列表自动执行 "enqueue if free space OR dequeue then enqueue"?

java - (几乎)相同的代码在一个地方产生未经检查的分配,而在另一个地方则不会

java - 如何在盒子布局中使用VerticalGlue

Java:父类(super class)中的同步方法与子类中的同步方法获取相同的锁,对吗?