2011-10-29 1 views

答えて

6

はい - それはあなたが本当にそれを望んでいないときにロックを取り出すことになります。 にはスレッドセーフを無料で提供しません。コードを遅くしすぎて、ロックが多すぎるためデッドロックに陥る可能性が高くなります。

あなた 明示的にスレッドセーフと同期を考える必要があり。私は通常、ほとんどのクラスを にしないで、スレッドセーフであり、スレッディングについて考える場所の数を制限しようとします。

「作る同期のすべて」のアプローチは、私が考えるもので一般的なもので、開発者のためのスレッド意識の四つの段階として:

  • 完全な無知:同期なし、潜在的な問題の無い意識
  • いくつかの意識が、ユニバーサル同期はすべての病気を治すという信念
  • 問題がある場所を知って、となって物事の上にケアをたくさん取るの痛みを伴う段階右
  • 取得すべてrの神話の舞台自然に喜んで

ほとんどの経験豊富な開発者は私が言うことができる限り、段階3に入っています。不変性を使用すると、低レベルのプリミティブなどの代わりに高水準の抽象化が大いに役立ちますが、最終的には、状態を共有する必要のある複数のスレッドを持っている場合は、かなりの量を考える必要があります。

+0

ありがとう、私はそれが簡単にすることができないという気持ちがあった:) – tjb

関連する問題