2011-10-29 26 views

回答

6

是的 - 當你不想要它們時,它最終會取出鎖。它不會免費給你線程安全 - 它只會減慢你的代碼,並使它更有可能因爲取出太多的鎖而陷入死鎖。

你需要需要明確地考慮線程安全和同步。我通常使大多數類不是線程安全的,並嘗試限制我考慮線程的地方的數量。

的「讓一切同步」的方法是什麼,我想一個普通的一種,穿線意識的四個階段爲開發者:

  • 完全無知:沒有同步,沒有的潛在問題的認識
  • 一些認識,但相信通用同步治癒百病
  • 知道哪裏有問題,並採取了很多心血在收拾東西的痛苦的階段正確
  • 讓一切R的神話舞臺飛行自然

大多數有經驗的開發人員都在第3階段,據我可以告訴 - 與在它不同層次的,當然容易。使用不變性,更高層次的抽象而不是低級的原語等等會有很大幫助 - 但是最終當你有多個需要共享狀態的線程時,最終你可能不得不考慮相當數量的抽象。

+0

謝謝,我有種感覺,它不可能那麼容易:) – tjb

相關問題