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;