上記は、ライターがリーダーよりも優先されるリーダー書き込み問題の解決策です。
最初に1000人のリーダーがデータを読み取るためのコードの実行を開始し(データコードの読み取りが巨大で、スレッドごとに1秒かかると仮定します)、次に1人のライターがデータを書き込もうとします。したがって、ライターは1000人のリーダーが最初に終了するのを待つ必要があります(つまり、1000秒)。
たとえば、1人のライターが時間を更新し、多くのリーダーが時間を読み取るアプリケーションでは、ライターは1000秒待つ必要があります。これは膨大な時間です。
ライターが書き込もうとしたときに、ライターがタスクを完了するまですべてのリーダーがプリエンプトされる解決策はありますか?