(1)マルチスレッドプロセスで、1つのスレッドがI / Oでビジーの場合、プロセス全体がブロックされますか?
(2)ミューテックスとバイナリセマフォのどちらを使用するのが良いですか?いつミューテックスを使用する必要があり、いつバイナリセマフォを使用する必要がありますか?
(1)マルチスレッドプロセスで、1つのスレッドがI / Oでビジーの場合、プロセス全体がブロックされますか?
(2)ミューテックスとバイナリセマフォのどちらを使用するのが良いですか?いつミューテックスを使用する必要があり、いつバイナリセマフォを使用する必要がありますか?
1)。マルチスレッドアプリケーションでは、一度に1つのスレッドのみにCPUが割り当てられます。スレッドが定期的にI/Oでビジーであると言っている場合、実際には、他のすべてのスレッドがCPUを割り当てるためにキューで待機し続ける可能性があります。使用するCPUによって異なりますallocation algorithm
。スレッドがTime-Sharing
アルゴリズムを使用している場合と同様に、もちろん時間の完了時に、現在のスレッドがキューの最後に送信されます。
2)。この投稿をチェックしてください:-バイナリセマフォとミューテックスの違い
1)SMP環境では、複数のスレッドを並行して(異なるCPUで)実行できます。単一のCPU環境では、一度に1つのスレッドのみが実行されます。