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