国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

StampedLock的使用

2019-11-06 06:34:16
字體:
供稿:網(wǎng)友

由于ReadWriteLock存在嚴重的性能問題,甚至在很多情況下比synchronized要慢,java8新出了StampedLock,這個鎖不僅更快,而且它提供強大的樂觀鎖API,這意味著你能以一個較低的代價獲得一個讀鎖, 在這段時間希望沒有寫操作發(fā)生,當這段時間完成后,你可以查詢一下鎖,看是否在剛才這段時間是否有寫操作發(fā)生?然后你可以決定是否需要再試一次 或升級鎖或放棄。

悲觀用法

悲觀用法和ReadWriteLock很類似,try前l(fā)ock,finally 里unlock。

long stamp = lock.writeLock(); //blocking lock, returns a stamptry { write(stamp); // this is a bad move, you’re letting the stamp escape} finally { lock.unlock(stamp);// release the lock in the same block - way better}

樂觀用法

先嘗試讀,讀完檢查有沒有寫操作發(fā)送,如果有則獲取悲觀鎖并重讀。

long stamp = lock.tryOptimisticRead(); // non blockingread();if(!lock.validate(stamp)){ // if a write occurred, try again with a read lock long stamp = lock.readLock(); try { read(); } finally { lock.unlock(stamp); }}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 桦川县| 神池县| 泰安市| 扎鲁特旗| 南丹县| 四会市| 光泽县| 金秀| 宝丰县| 垣曲县| 民和| 阿瓦提县| 肃宁县| 景东| 拉孜县| 白银市| 湟源县| 谢通门县| 英德市| 突泉县| 怀化市| 济南市| 北京市| 玛沁县| 手游| 呼伦贝尔市| 丰宁| 泽普县| 靖州| 防城港市| 巫溪县| 六盘水市| 汾西县| 策勒县| 德江县| 寿宁县| 眉山市| 千阳县| 河津市| 姜堰市| 仙游县|