概要:同期せずに同じメモリスペースにアクセスするリーダースレッドとライタースレッドがあります。実行時エラー(論理エラーではない)またはプロセスまたはスレッドを壊すリスクはありますか?
簡単なタスクスケジューラを作成しようとしています。
いくつかのワーカースレッドがあり、それらには独自のタスクキューがあります。
タスクスケジューラは、タスクをワーカーのキューにプッシュします。
スケジューラーに、キューが最も短い最もビジーでないスレッドを知らせたい。
したがって、各キューの長さを格納するために、いくつかの共有整数変数が必要です。
各ワーカースレッドは、特定の変数に独自のキューの長さを書き込みます。
そして、スケジューラーはその変数を読み取って、最短の変数を認識します。
したがって、各変数には1つの読み取りと1つの書き込みがあります。
これはRWの問題であり、ミューテックスが必要です。
しかし、私はオーバーヘッドを必要とせず、キューの正確な長さを知っています。
そのため、スレッドが同期せずに共有値にアクセスできるようにします。
不正確な値なしで問題はありますか?