Java Callable和Future學習
導語:Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++裏難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。下面我們來看看JavaCallable和Future學習,希望對大家有所幫助。
常見用法
一般Callable和Future搭配使用的方法如下:
把Callable任務提交給線程池,線程池給我們返回一個Future對象;
然後我們通過Future拿到一個結果;
説明:線程池幫我們做了太多事情,而且封裝起來,這樣子我們理解底層機制就非常困難,畢竟距離冰冷的現實越遠,對底層越難以理解;
原理概述
線程池背後做的事情如下:
把Callable轉換為FutureTask(這個對象實現了Futuure和Runnable接口,並且包含Callable屬性);
線程把FutureTask當做Runnable進行調度,在真正執行的時候調用的是FutureTask中的`run方法,這個方法乾的事情就是:
調用Callable的call方法,然後再把結果放到FutureTask的屬性outcome上,
這樣,當我們FutureTask調用get方法(實現了Futuure的get方法),(當然完成的情況下)就給我們返回outcome;
-
Java中的對象與引用知識詳解
在Java中,有一組名詞經常一起出現,它們就是“對象和對象引用”,很多朋友在初學Java的時候可能經常會混淆這2個概念,覺得它們是一回事,事實上則不然。今天我們就來一起了解一下對象和對象引用之間的區別和聯繫。以下僅供參考!1.何謂對象?在Java中有一句比較流行的話,叫...
-
Java中基於Aspectwerkz的AOP開發
一、AOP編程概覽面向對象編程技術進入軟件開發的主流對軟件的開發方式產生了極大的影響,開發者可以用一組實體以及這些實體之間的關係將系統形象地表示出來,這使得他們能夠設計出規模更大、更復雜的系統,開發週期也比以前更短。OO開發的唯一問題是,它本質上是靜態...
-
java考試複習題
人類的希望像是一顆永恆的星,烏雲掩不住它的光芒。特別是在今天,和平不是一個理想,一個夢,它是萬人的願望。以下是小編為大家搜索整理的java考試複習題,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!一、選擇題1、以下程序段執行後的K值為()。...
-
java的nio的使用示例分享
在jdk1.4中提出的技術,非阻塞IO,採用的是基於事件處理方式。傳統的io技術為阻塞的`,比如讀一個文件,惹read方法是阻塞的,直到有數據讀入。歸納為:1、javaio為阻塞,在打開一個io通道後,read將一直等待在端口一邊讀取字節內容,如果沒有內容進來,read相當於阻塞掉了。2、在1...
相關文章
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- java的String=a; a==null和a.equals(null)這兩個判斷有什麼區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別