Android:为什么不让每个方法同步?

时间:2011-10-29 07:43:39

标签: android

在Android中同步每个方法是否有任何不足之处?

1 个答案:

答案 0 :(得分:6)

是的 - 当你真的不想要它时,它会最终取出锁。它不会免费为您提供线程安全 - 它只会减慢您的代码速度并使您更有可能因为取出太多锁而遇到死锁。

需要明确考虑线程安全和同步。我通常会使大多数类线程安全,并尝试限制我认为线程的位置数。

“使所有内容同步”的方法在我认为是开发人员的线程感知的四个阶段中是一个常见的方法:

  • 完全无知:没有同步,没有意识到潜在的问题
  • 一些意识,但认为普遍同步能治愈所有弊病
  • 知道哪里有问题,并且非常注意把事情弄好的痛苦阶段
  • 自然地使一切正确的神话阶段

据我所知,大多数有经验的开发人员都处于第3阶段 - 当然,其中有不同程度的轻松。使用不变性,更高级别的抽象而不是低级原语等有很大帮助 - 但是当你有多个需要共享状态的线程时,最终你可能不得不考虑相当多的数量。