0

たとえば、プロジェクトでログシステムが必要な場合、ログファイルを直接書き込んだり、ログファイルをモニターオブジェクトにラップしたりする代わりに、ログを記録する唯一のスレッドである専用のログスレッドを開始できます。

他のスレッドがログを書き込みたい場合は、この専用スレッドにメッセージを送信します。次に、ログスレッドはメッセージキューからログファイルにログを順番に書き込むことができます。

これは、各ルーチンの書き込みログが何らかの同期スキームを使用する必要があるマルチスレッドよりも優れた設計だと思います。

だから私は正しいですか?マルチスレッドの問題を単純なシングルスレッドの問題に変えるためのより多くの方法/例を提供できますか?

4

1 に答える 1

2

これは、各ルーチンの書き込みログが何らかの同期スキームを使用する必要があるマルチスレッドよりも優れた設計だと思います。

ログへの書き込みが専用スレッドのみである設計では、同期も使用する必要があります。ただし、ログへのアクセスを同期する代わりに、ログに書き込むスレッドの生産者/消費者キューへのアクセスを同期する必要があります。

マルチスレッドの問題を単純なシングルスレッドの問題に変えるためのより多くの方法/例を提供できますか?

問題は決して単純化されたわけではありません。同期の必要性はなくなりませんでした。ある場所から別の場所に移動しただけです。

于 2012-10-09T00:57:45.533 に答える