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程式設計入門必備的知識,供大家參考!01、Java程式設計出現的背景1991年Sun公司的JamesGosling等人開始開發名稱為Oak的語言。希望用於控制嵌入在有線電視交換盒、PDA等的微處理器,但卻沒有取得...
-
Java 非同步回撥機制例項解析
回撥,回撥。要先有呼叫,才有呼叫者和被呼叫者之間的回撥。下面小編給大家介紹Java非同步回撥機制例項解析,歡迎閱讀!Java非同步回撥機制例項解析一、什麼是回撥軟體模組之間總是存在著一定的介面,從呼叫方式上,可以把他們分為三類:同步呼叫、回撥和非同步呼叫。回撥是一種...
-
Java工程師是做什麼的
Java工程師職位描述提要:精通Java/J2EE程式設計,能熟練使用SpringMVC、hibernate、框架進行專案開發,熟練使用freemarker等前端模板語言。Java工程師職位描述:1、負責產品功能開發;2、遵循公司技術標準、規範,高質量完成設計、開發任務;3、參與研發部門技術積累、技術難題...
-
java建構函式呼叫技巧
Java是一個純的面向物件的程式設計語言,它繼承了C++語言面向物件技術的核心,Java捨棄了C++語言中容易引起錯誤的指標(以引用取代)、運算子過載(operatoroverloading)、多重繼承(以介面取代)等特性,增加了垃圾回收器功能用於回收不再被引用的物件所佔據的記憶體空間,...
相關文章
- 如何理解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區別
- 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區別