我在Constants文件中有一个arraylist。同一个arraylist是否有可能同时在不同的类中有不同的值? 可能是arraylist的访问也发生在不同的线程中。如果它发生了,我该怎么办才能解决这个问题? arraylist会根据Firebase的回调方法进行修改。
注意: - 我没有任何代码可以在这里发布。
答案 0 :(得分:2)
这不仅限于List
。在每个并发环境中,您必须采取预防措施,确保没有种族情况或无法预见的突变。为了解决这个问题,java.util.concurrent
包中有几个实现。 Here is an overview
还可以选择使用java工具进行并发,例如同步,原子字段,锁定对象等等。
https://docs.oracle.com/javase/tutorial/essential/concurrency/index.html