關(guān)于并發(fā)的一個(gè)問題?
我有這樣一個(gè)接口,一個(gè)用戶5秒內(nèi)只能響應(yīng)一個(gè)請(qǐng)求。
先創(chuàng)建一個(gè)concurrenthashmap
使用concurrenthashmap.putIfAbsent(userid,time)
若添加成功則請(qǐng)求響應(yīng),否則就是丟棄這個(gè)請(qǐng)求,然后程序的finally{}
里根據(jù)時(shí)間remove<愛尬聊_尬聊生活>(userid)
.這樣能實(shí)現(xiàn)這個(gè)問題嗎?你們有什么好的解決方法,自己項(xiàng)目里的這個(gè)需求暫時(shí)不考慮用redis和zookeeper
你說起什么名 6小時(shí)前
}lastRequestMap.put(userid, now)......
u_106101665 6小時(shí)前
ConcurrentHashMap lastRequestMap = ...
qkoufu1511 6小時(shí)前
long now = System.currentTimeMillis()Long lastRequestTime = lastRequestMap.get(userid)if(lastRequestTime != null && lastRequestTime > now - 5秒鐘) {