han*_*arm 4 java multithreading
我试图搜索但找不到我正在寻找的确切答案因此提出了一个新问题.
如果您希望在多个线程之间共享任何可变对象,是否有任何最佳实践/原则/指南可以执行此操作?
或者它会根据具体情况而变化?
在线程之间共享可变对象是有风险的.
最安全的方法是使对象不可变,然后您可以自由地共享它们.
如果它们必须是可变的,那么每个对象都需要使用通常的方法来确保它们自己的线程安全.(synchronized,AtomixX等).
保护单个对象的方法会有很大差异,具体取决于您使用它们的方式以及使用它们的方式.
在java中,你应该同步任何改变/读取共享对象状态的方法,这是最简单的方法。
其他策略是:
他们的关键是同步您的更新/读取以保证一致的状态,您这样做的方式可能会有很大差异。