我有一个 ArrayList,我在广播接收器回调中向其中添加项目。
但是,数组列表最终将附加到适配器,然后我希望将数组的内容显示到屏幕上。
该数组包含来 self 正在开发的 P2P 应用程序的对等信息,因此当设备接入和脱离连接/范围时,该数组会经常发生更改。
所以基本上 arraylist 会被频繁地读写。 我来自 C++ 背景,所以在访问它时我通常会使用锁来保护我的数组列表,但我不确定在 java/android 中应该使用什么。 如有任何建议,请。
最佳答案
使用锁永远不会错。所有同步所做的都是在幕后使用锁。一些 Java 纯粹主义者可能会提示,但您往往会通过使用信号量获得更大的灵 active (有时这只是唯一正确的方法)。还有一些丑陋的极端情况需要等待/通知,您必须真正理解信号量只是避免的用例才能正确使用。如果您熟悉它们,我会毫不犹豫地使用它,因为您现在使用的是 Java。
关于java - 在Android中什么时候应该使用锁,什么时候应该使用synchronized?有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24587822/