導航:首頁 > 數據處理 > 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怎麼緩存數據相關的資料

熱點內容
期貨什麼時候下午交易 瀏覽:484
為什麼自己要和別人交易 瀏覽:446
青島河西區農貿市場有多少個商戶 瀏覽:417
台灣軍工技術與大陸哪個先進 瀏覽:898
怎麼看待北京證券交易所 瀏覽:580
數據收集渠道是干什麼的 瀏覽:629
蘋果如何操作關閉後台程序 瀏覽:58
titan幣在哪個交易所 瀏覽:782
123456是什麼數據類型 瀏覽:506
色素斑用什麼牌子的產品好 瀏覽:370
硬碟怎麼互相拷貝數據 瀏覽:305
上海新房在哪個小程序看 瀏覽:244
產品設計是什麼思維導圖 瀏覽:721
達州活牛市場在哪裡 瀏覽:816
如何創新環保產品論文 瀏覽:487
市場調查什麼專業要學 瀏覽:259
產品引用的素材有哪些 瀏覽:846
如何改正微信信息 瀏覽:957
公積金貸款怎麼代理 瀏覽:936
蘇州安泰空氣技術有限公司在哪裡 瀏覽:676