リクエストを処理し、複数のキューに追加/削除するマルチスレッドサーバーがあります。このサーバーは、REST呼び出し用のAPIを提供します。私のデザインは次のとおりです(擬似コードで):
postRequest(queueName)
{
lockmutex
if(exist?(queueName))
//process request add data to queue
else
//create queue and process request
unlockmutex
}
getRequest(queueName)
{
lockmutex
if(exist?(queueName))
//process request to queue
else
//create queue and process request
unlockmutex
}
deleteRequest(queueName)
{
lockmutex
if(exist?(queueName))
//process request
else
//create queue and process request
unlockmutex
}
私の問題は、ほとんどのコードでミューテックスをロックしているため、マルチスレッド化によってそれほど高速にならないことです。キューの追加/削除時に複数のスレッドを同期する他の方法はありますか?ユーザーからのREST呼び出しを処理する必要があるため、これらのキューからデータがどのように追加/削除されるかを予測する方法がないことに注意してください。