2012-02-08 8 views
2

Javaでは、揮発性かつ同期化されたmakeマルチスレッドは、一緒に動作し、互いを理解することができます。しかし、シングルコアシステムでマルチスレッドを使用している場合、実際にはマルチスレッドの作業ではなく、OSはこのスレッドからスレッドに変わります。 (したがって、ちょうど1つの変数はちょうど1つの変数を使用します)CPUシングルコア:揮発性または同期が必要ですか?

したがって、揮発性または同期などの安全スレッド技術を使用する必要はないと思います。 それは本当ですか?

ありがとう:)

+1

複数のCPUを搭載したコンピュータでコードを実行するとどうなりますか?残念ながら安全である方が常に良いです。 – Jeffrey

答えて

1

同期は、いくつのコアに依存しません。共有リソースを競合するスレッドの数に基づいています。競合するスレッドが複数ある場合は、同期が必要です。

4

あなたは間違っています。 JREは任意の時点(スレッドがクリティカルセクションにある間も含む)でスレッドを切り替える可能性があるため、シンクロナイゼーションはシングルコアシステムでは依然として問題です。

1

シンクロナイゼーションは、シングルコアまたはマルチコアシステムに関係なく重要です。デッドロックを防止するには、シンクロナイゼーションを正しく使用する必要があります。また、デッドロック防止以外にも、シンクロナイゼーションはGUIアプリケーションで必須です。定期的にGUIを更新します。

関連する問題