我有一个多线程服务器,它处理请求并从多个队列中添加/删除。此服务器为休息调用提供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
}
我的问题是我为大多数代码锁定了互斥锁,因此多线程并没有真正使它快得多。有没有其他方法可以在添加/删除队列时同步多个线程,请记住,我必须处理来自用户的休息调用,因此无法预测如何从这些队列中添加/删除数据。