基於靜態變數的快取鎖

2021-08-20 03:59:02 字數 1130 閱讀 5026

//linestationprocessor類

//靜態資源(想保證集合類的執行緒安全可以使用--concurrenthashmap《基於分段鎖,效率要高於hashtable>)

public static mapdispatchtype = new hashmap<>();

//business_request_code 和 lasttype.getrequestcode() 鎖的資源型別

string business_request_code = bri.getbusiness_request_code();

//獲取快取是否含有當前車輛指令

dhmdispatchcommanddto lasttype = linestationprocessor.dispatchtype.get(device_id);

//過期時間

long expirationtime = 0;

long nowtime = system.currenttimemillis();

if(lasttype != null)

// 判斷兩種型別是否相同,不同即sleep5秒

if (lasttype != null && !business_request_code.equals(lasttype.getrequestcode()) && nowtime < expirationtime) catch (interruptedexception e)

isnowtime = system.currenttimemillis();

if (isnowtime > expirationtime)

} isnowtime += 5000;

nowtime = isnowtime;

}else

//快取中沒有記錄或是睡眠完成後在之前的時間加超時,未睡眠加5秒,睡眠需加10秒,實際 超時時間均為5秒

lasttype.setrequestcode(business_request_code);

lasttype.settimemsec(nowtime);

linestationprocessor.dispatchtype.put(device_id, lasttype);

php快取變數 使用PHP靜態變數當快取的方法

下面這個php的 例項,功能是幫助使用者重置密碼,requestresetpassword是接收使用者重置密碼的請求並且做了相應的檢查。為了更好的復用性,我將重置密碼的操作單獨分配到乙個新的resetpassword的函式,更改完密碼的後再呼叫sendemail向使用者傳送一封通知郵件。使用者請求重...

靜態變數 非靜態變數的區別

c 變數根據定義位置的不同,具有不同的作用域,作用域可分為6種 全域性作用域,區域性作用域,語句作用域,類作用域,命名作用域和檔案作用域。從作用域看 全域性變數具有全域性作用域。全域性變數只需在乙個原始檔中定義,就可以作用於所有的原始檔。當然,其他不包括全域性變數定義的原始檔需要用extern關鍵字...

靜態變數和非靜態變數

class string1 a和b編譯報錯,can not make a static referrence to no static filed s3,s4 分析 string s1 pingguo string s2 xiangjiao string s3 new string lizi str...