2017-07-10 26 views
0

在簡單的客戶端服務器程序java的,我們都可以從客戶端密鑰值和TTL被刪除後,如果有活設置(TTL)值的時間密鑰,它應該在ttl過期後從內存中刪除。 輸入是關鍵值time_to_live 例如: hi there 60 在上述情況下,應該在設置完60秒後刪除鍵hi。任何想法在這一個?Java的一段時間(生存時間)變量應該從存儲器

+1

你嘗試過什麼嗎?你卡在哪裏? – shmosel

+0

我不知道如何設置Java中的時間限制這就是問題:( – Gowtham

+0

這不是一個教程網站。做一些調查研究,制定一個嘗試,回來時,你有一個具體的問題或問題。 – shmosel

回答

0

這裏有兩個方面。

首先,Java是一種垃圾回收的語言。這意味着,你不必在當一個物體變得收集時間在點完全控制。在您控制下的方面是:「活着」引用指向該對象。只要沒有活動引用指向某個對象,該對象就有資格進行垃圾回收。然後GC將決定何時擺脫該對象。

但你的問題是(最有可能)進入一個不同的方向。你需要做的是:實現你自己的緩存類。當添加新條目時,這些可能只需要一個時間戳;然後有一個監視器線程每隔x秒運行一次。監視器線程只是刪除高速緩存中所有具有「生命前」時間戳記的條目。

當然:這是不是實現(因爲你必須避免監測線程和其他線程之間的競爭條件試圖從緩存中讀取)一件容易的事情。