0
我有一个文件服务器连接池。 (以缓存连接的文件服务器) 现在,如果池中有100个打开的连接,我想稍后清理一下。池:清理池
我会在15分钟后进行清理。 (例如,在15分钟不活动后关闭20%的活动连接)
为此,我需要记住最后一次输入请求的时间戳。 (作为一个静态变量)
static DateTime s_lastUse;
//...
UseFileServer()
{
s_lastUse = DateTime.Now;
}
//...
CreateNewConnection()
{
if((DateTime.Now - s_lastUse) > TimeSpan.FromSeconds(900))
{
//do cleanup....
}
}
这是可能的多线程体系结构? 也许,如果两次写操作发生在同一时间,则变量中的值已损坏。
.net是否确保这个写入操作是原子的?
s_lastUse = DateTime.Now;