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

熱點內容
小程序開發哪裡有聚頂科技行 瀏覽:753
上海櫥櫃市場在哪裡 瀏覽:290
暗黑2單機和戰網哪個能裝備交易 瀏覽:956
大數據更新後怎麼樣 瀏覽:592
怎麼根據交易去查對應的日誌 瀏覽:476
產品經理培訓有哪些模型 瀏覽:546
海康北京總代理有哪些 瀏覽:115
哪個交易所有比特幣模擬盤 瀏覽:290
企業財務代理記賬費用多少 瀏覽:270
如何具備自己的交易系統 瀏覽:514
瓦特交易所怎麼設置昵稱 瀏覽:821
河東區代理記賬有什麼用 瀏覽:743
給你發的信息怎麼沒有提示音 瀏覽:394
如何看懂表格中的多行數據 瀏覽:761
汽車渠道號信息是什麼 瀏覽:661
小程序如何寫頭部劉海 瀏覽:908
做捕魚代理有什麼技能 瀏覽:130
文華財經美黃金交易保證金多少 瀏覽:982
數字貨幣交易所點卡用來做什麼 瀏覽:101
附近哪裡有勞務市場呂梁 瀏覽:652