導航:首頁 > 數據處理 > java怎麼緩存數據

java怎麼緩存數據

發布時間:2023-07-26 20:02:01

Ⅰ java怎樣將數據保存到緩存中,之後再保存

Java中可以使用隊列來保存數據,當使用的時候,加上鎖,防止其他進程訪問,當不用的時候保存到資料庫裡面,示例如下:

packagecom.henry;
importjava.util.HashMap;
importjava.util.Map;
importjava.util.Random;
importjava.util.concurrent.locks.ReadWriteLock;
importjava.util.concurrent.locks.ReentrantReadWriteLock;

publicclassCacheDataTest{
staticMap<Integer,Object>dataMap=newHashMap<Integer,Object>();
staticReadWriteLocklock=newReentrantReadWriteLock();//創建讀寫鎖的實例
staticObjectgetData(Integerkey){
lock.readLock().lock();//讀取前先上鎖
Objectval=null;
try{
val=dataMap.get(key);
if(val==null){
//
lock.readLock().unlock();
lock.writeLock().lock();
try{
//可能已經由其他線程寫入數據
if(val==null){
//dataMap.put(key,"");//queryfromdb
val=queryDataFromDB(key);
}
}finally{
//
lock.readLock().lock();
//Unlockwrite,stillholdread
lock.writeLock().unlock();
}
}
}finally{
lock.readLock().unlock();//最後一定不要忘記釋放鎖
}
System.out.println("getdatakey="+key+">val="+val);
returnval;
}

staticObjectqueryDataFromDB(Integerkey){
Objectval=newRandom().nextInt(1000);
dataMap.put(key,val);
System.out.println("writeintodatakey="+key+">val="+val);
returnval;
}

publicstaticvoidmain(String[]args){
for(inti=0;i<10;i++){
newThread(newRunnable(){publicvoidrun(){
getData(newRandom().nextInt(5));
}}).start();
}
}
}
閱讀全文

與java怎麼緩存數據相關的資料

熱點內容
塗料產品檢測哪些 瀏覽:287
亞馬遜上傳的產品怎麼清理 瀏覽:42
微分子技術用到護膚品中會怎麼樣 瀏覽:68
如何找到小程序推送消息 瀏覽:298
美股沒有盤前交易說明什麼 瀏覽:64
地圖產品怎麼傳遞 瀏覽:721
棗庄智慧經營代理哪裡有店 瀏覽:766
製作微信小程序時攝氏度如何表達 瀏覽:891
數字程序卡哪裡有賣 瀏覽:121
流沙有哪些市場 瀏覽:623
大數據把多少小企業搞死 瀏覽:100
apachedruid是什麼資料庫 瀏覽:588
手機程序包換了怎麼辦 瀏覽:648
如何清除王者榮耀微信數據 瀏覽:503
網路扶貧產品有哪些 瀏覽:383
上技術學院需要准備什麼 瀏覽:587
數據類型哪些是字元型 瀏覽:33
售賣偽造3c的產品怎麼判 瀏覽:11
哪個手機上的小程序能看電視劇 瀏覽:249
技術領先者是什麼 瀏覽:477