C++ 插座选项如此_RCVTIMEO不准确?

C++ 插座选项如此_RCVTIMEO不准确?,c++,timeout,setsockopt,C++,Timeout,Setsockopt,我使用hiredis redisSetTimeout函数设置timeout 10ms,当我启动100个线程时它是精确的10ms,但是当我启动1000个线程时,一些调用redisVCommand的代价是300+ms,而不是超时,有人能详细解释一下吗 redisSetTimeout函数调用以下系统函数 没有人说它精确到任何特定程度。如果您有一个繁忙的系统,线程可能无法在睡眠或超时过期后安排相当长的时间。10毫秒选择超时是非常乐观的。大多数人使用秒的倍数。也许增加超时时间可以减少延迟。想想看,在生产

我使用hiredis redisSetTimeout函数设置timeout 10ms,当我启动100个线程时它是精确的10ms,但是当我启动1000个线程时,一些调用redisVCommand的代价是300+ms,而不是超时,有人能详细解释一下吗

redisSetTimeout函数调用以下系统函数


没有人说它精确到任何特定程度。如果您有一个繁忙的系统,线程可能无法在睡眠或超时过期后安排相当长的时间。10毫秒选择超时是非常乐观的。大多数人使用秒的倍数。也许增加超时时间可以减少延迟。想想看,在生产环境中,我将超时设置为100毫秒,它可以延迟到40秒甚至更多。
setsockopt(c->fd,SOL_SOCKET,SO_RCVTIMEO,&tv,sizeof(tv))  
setsockopt(c->fd,SOL_SOCKET,SO_SNDTIMEO,&tv,sizeof(tv))