2016-07-29 6 views
-2

マルチスレッドは、複数のスレッドが同時に実行される場合です。しかし、スレッドが同期されると、マルチスレッドは発生しません。彼らは通常のスレッドとして動作します。とにかくそれを同期させなければならないのであれば、最初にマルチスレッドを行うのはなぜですか?同期していないと、マルチスレッド化は非マルチスレッド化になりますか?それでは、なぜマルチスレッドを最初に行うのですか?

+3

相互排他的に実行する必要があるクリティカルセクションのみを同期させます。 –

+0

ロックを使用して同期した場合、絶対に何もかも無意味なので、そうしないといけません。 –

答えて

0

あなたはその後、マルチスレッドにはポイントがありません記述する方法であなたのスレッドを同期している場合。あなたがマルチスレッドを使用する場所はパラレルデータ処理です​​。必要なすべての入力を収集した後、同期を必要とせずにスレッドを互いに独立して実行することができます。

0

特定のコードの一部が並行して実行されないように、スレッドを並列に実行することはありません。

は、2つのスレッドが徐々に、共有配列から値を読み出し、それらにいくつかの計算を実行して、共有メモリ位置に結果を追加することを想像します。読み取り値の

部分には2つのスレッドが同じ値を読んでいないことを確認するために、同期を必要とします。メモリ位置にデータを追加すると

部分は、データが同時に両方のスレッドによって書き込まれていないので、同期されるべきです。

計算との一部を並行して行うことができ、通常はこの部分が最も時間のかかるだろう。したがって、これはマルチスレッド化の利点です。

関連する問題