Android,当我必须在一个线程中使用synchronized

Android, when I must use syncronized in a thread

我正处于 Java 申请的开始阶段。我用一些线程创建了一个服务,但我不明白什么时候必须使用同步,什么时候不需要。

例如,我必须通过蓝牙连接到一个模块,然后我使用一个有两个线程的服务:ConnectThread 放弃连接,ConnectedThread 设法建立 read/write 连接。

那么我什么时候必须使用同步?

谢谢

只要不同线程使用相同(即全局)变量,基本上是在共享信息时,就使用 Synchronized 关键字。检查代码,看看是否是这种情况。

当每个线程使用的变量是本地变量时,不需要同步。然后使用它会导致性能下降,并可能导致不一致。

我尽可能避免线程,因为我对它们没有那么多经验,但我会尽可能简单地解释它。

只有在多个线程可以访问您的方法或代码块时才使用同步。

这是一个简单的解决方案,可以防止其他线程访问同一代码,而另一个线程仍在使用它。这将有助于防止与内存相关的问题,但会导致性能问题。因为同步代码比非同步代码慢得多。我也相信死锁也可能是一个问题