1. 程式人生 > >Java併發,看到了,就記錄下唄

Java併發,看到了,就記錄下唄

 1 public class Memoizer4<T,R> implements  Computable<T,R>{
 2 
 3     private  final ConcurrentMap<T,Future> cache = new ConcurrentHashMap<>();
 4 
 5     private  final Computable<T,R> computable;
 6 
 7     public Memoizer4(Computable<T, R> computable) {
 8         this
.computable = computable; 9 } 10 11 public R compute(final T input) throws InterruptedException { 12 while (true){ 13 Future<R> future = cache.get(input); 14 if (future==null){ 15 Callable<R> callable = new Callable<R>() { 16
@Override 17 public R call() throws InterruptedException { 18 return computable.compute(input); 19 } 20 }; 21 FutureTask futureTask = new FutureTask(callable); 22 future= cache.putIfAbsent(input, futureTask);//
如果原先不存在,返回null 23 if(future==null){ 24 future=futureTask; 25 futureTask.run(); 26 } 27 } 28 try{ 29 return future.get(); 30 } catch (CancellationException e) { 31 cache.remove(input,future); 32 } catch (ExecutionException e) { 33 throw new RuntimeException(e); 34 } 35 } 36 }

相關推薦

Java併發看到記錄

1 public class Memoizer4<T,R> implements Computable<T,R>{ 2 3 private final ConcurrentMap<T,Future> cache = new ConcurrentHash

springboot2.0.6實現整合swagger2.9.2良心版最新版複製能用。

1、pom依賴: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-s

深度學習模型stacking模型融合python代碼會使

shuffle The max and ots shape onf 第一個 求平均值 話不多說,直接上代碼 1 def stacking_first(train, train_y, test): 2 savepath = ‘./stack_op{}_dt

學習Java JDBC這篇

影響 數據庫中間件 project prepare 管理系 lba 分布 為我 vax JDBC (Java DB Connection)---Java數據庫連接 JDBC是一種可用於運行SQL語句的JAVA API(ApplicationProgramming

java內存模型這裏

空間大小 問題 局部變量 調用 字節 兩種 操作 讀取 定義 轉載請註明作者與出處 程序計數器 線程私有 因為物理cpu並不多,所以jvm是對java裏面的線程進行不停的切換執行,因為切換的執行速度太快,所以我們看到是並發執行。所以jvm在切換線程執行後,如果要切換回原

Java培訓要英語基礎嗎?明白

有人問這樣的問題:英語成績差可以學Java嗎?英語不好影響Java學習嗎?到睿峰諮詢Java課程的同學也常常有這樣的擔憂,經常有人問到成都Java培訓機構學習要英語基礎嗎?今天就告訴大家答案。 到成都Java培訓機構學習要英語基礎嗎?答案是肯定的,每個人的心裡也是明白的,畢竟所有的程式設計程式碼都是由英語單

Java 動態代理這篇

這篇文章需要用到 Java 的反射知識,如果對反射還不清楚的小夥伴,可以先移步到這裡 《Java進階-反射》。 程式設計思想都是來自於生活的,“代理” 在生活中很常見。比如我們買一個東西時,一般都不會是直接從工廠裡買的,而是去商店或者其他的商家買,這些商家做的事情就是代理。

Java執行緒池詳解這篇

構造一個執行緒池為什麼需要幾個引數?如果避免執行緒池出現OOM?Runnable和Callable的區別是什麼?本文將對這些問題一一解答,同時還將給出使用執行緒池的常見場景和程式碼片段。 基礎知識 Executors建立執行緒池 Java中建立執行緒池很簡單,只需要呼叫Execu

【本人禿頂程式設計師】Java執行緒池詳解這篇

←←←←←←←←←←←← 快!點關注!!! 構造一個執行緒池為什麼需要幾個引數?如果避免執行緒池出現OOM?Runnable和Callable的區別是什麼?本文將對這些問題一一解答,同時還將給出使用執行緒池的常見場景和程式碼片段。 基礎知識 Executors建立執行緒池 J

java序列化這篇

一、序列化的含義、意義及使用場景二、序列化實現的方式1、Serializable1.1 普通序列化1.2 成員是引用的序列化1.3 同一物件序列化多次的機制1.4 java序列化演算法潛在的問題1.5 可選的自定義序列化2、Externalizable:強制自定義序列化3、兩種序列化對比三、序列化版本號ser

入門Webpack這篇

ref ebp shu 走了 pack webp body 入門 ble 原文地址:https://www.jianshu.com/p/42e11515c10f一直以前對webpack不是很了解,通過看了原文,自己動手走了一邊,算是對webpack有了個入門。我把自己做了的

你要找的Visio最佳替代在這!

Visio 替代 繪圖軟件 國產軟件 論是工作還是學習,常會涉及繪制一些可視化的圖形或圖表,比如流程圖、組織架構圖、思維導圖等。遇到這樣的問題,不少人想起用 Word 裏蹩腳的形狀功能來繪制。 顯然,用 Word 繪圖的效率是極其低的,而且效果也並不美觀。在這時候,不妨試試「

Map總結這篇

java map 概要 學完了Map的全部內容,我們再回頭開開Map的框架圖。 第1部分 Map概括 (01) Map 是“鍵值對”映射的抽象接口。(02) AbstractMap 實現了Map中的絕大部分函數接口。它減少了“Map的實現類”的重復編碼。(03) SortedMap 有序的“鍵值對”映

零基礎自學人工智能這些資料(300G資料免費送)

工具 flow 領取 學習 講解 及其 需要 量化 決策 為什麽有今天這篇?首先,標題不要太相信,哈哈哈。 本公眾號之前已經就人工智能學習的路徑、學習方法、經典學習視頻等做過完整說明。但是鑒於每個人的基礎不同,可能需要額外的學習資料進行輔助。特此,向大家免費發送近300G的

入門 Webpack這篇

通過 位置 post 進行 參考 sets 想要 避免 pat 轉:https://segmentfault.com/a/1190000006178770 2018年8月25日更新,目前 webpack 已經更新值 4.17.1 ,本文所用到的各種庫或多或少有些過時,跟著代

Elasticsearch Query DSL 整理總結(二)—— 要搞懂 Match Query這篇

目錄 引言 構建示例 match operator 引數 analyzer lenient 引數 Fuzziness fuzzniess 引數 什麼是模糊搜尋? Levenshtein Edit Dist

Python Web怎麼學這篇

Python目前應用領域實在太多,這也是他這麼火的原因吧。我認為目前Python作為應用領域來說幾個方向是值得肯定的:人工智慧、大資料分析、DevOps、Web、自動化測試、爬蟲。 在Python基礎方向,我認為必須掌握的技能有: 基本資料型別、內建資料結構 函式、高階函式、裝飾器 迭代器、

Python Web怎麽學這篇

哪些 都是 這一 djang quest int 數據類型 簡單 dev Python目前應用領域實在太多,這也是他這麽火的原因吧。我認為目前Python作為應用領域來說幾個方向是值得肯定的:人工智能、大數據分析、DevOps、Web、自動化測試、爬蟲。 在Python基礎

繼萬字諫言後Python Web 怎麼學這篇

  1. 之前那篇「萬字諫言,給那些想學Python的人,建議收藏後細看!」得到很多後臺讀者的留言,表示想再來點,甚至說萬字系?你知道萬字有多少麼?不要槓我根本沒有萬字!不叫萬字你能看到這篇良心嘛! 那憋了3天了,今天放個web好了,相信很多讀者都有關注web開發,那我們

Python 中的 orand 運算這篇

問題出現: Python 中的 or,and 運算,可以寫出非常複雜的演算表示式; 看了一些大神的演算規則解釋,覺得不是很好理解,有些人甚至理解錯了規則。 這篇部落格聊一下自己的理解。 其他人是怎麼做的: 先看兩個例子熱下身: return 1 or 2 return