java Future用法和意義一句話擊破
所以run的返回值是void型別。
如果是一個多執行緒協作程式,比如菲波拉切數列,1,1,2,3,5,8...使用多執行緒來計算。
但後者需要前者的結果,就需要用callable介面了。
callable用法和runnable一樣,只不過呼叫的是call方法,該方法有一個泛型返回值型別,你可以任意指定。
執行緒是屬於非同步計算模型,所以你不可能直接從別的執行緒中得到函式返回值。
這時候,Future就出場了。Futrue可以監視目標執行緒呼叫call的情況,當你呼叫Future的get()方法以獲得結果時,當前執行緒就開始阻塞,直接call方法結束返回結果。
下面三段簡單的程式碼可以很簡明的揭示這個意思:
runnable介面實現的沒有返回值的併發程式設計。
callable實現的存在返回值的併發程式設計。(call的返回值String受泛型的影響)
同樣是callable,使用Future獲取返回值。
相關推薦
java Future用法和意義一句話擊破
在併發程式設計時,一般使用runnable,然後扔給執行緒池完事,這種情況下不需要執行緒的結果。 所以run的返回值是void型別。 如果是一個多執行緒協作程式,比如菲波拉切數列,1,1,2,3,5,8...使用多執行緒來計算。 但後者需要前者的結果,就需要用callabl
java 多執行緒之future用法和意義
在併發程式設計時,一般使用runnable,然後扔給執行緒池完事,這種情況下不需要執行緒的結果。所以run的返回值是void型別。 如果是一個多執行緒協作程式,比如菲波拉切數列,1,1,2,3,5,8...使用多執行緒來計算。但後者需要前者的結果,就需要用callable介
JAVA flush()的用法和意義
flush()方法:沖走。意思是把緩衝區的內容強制的寫出。 因為作業系統的某些機制,為了防止一直不停地磁碟讀寫,所以有了延遲寫入的概念。 在網路web伺服器上也是,為了防止寫一個位元組就傳送一個訊息,所以有緩衝區的概念,比如64K的記憶體區域,緩衝區寫滿了再一次性寫入磁碟之中(或
malloc的用法和意義
int *p; p = ( int *) malloc ( sizeof ( int ) * 128); //分配128個(可根據實際需要替換該數值)整型儲存單元, //並將這128個連續的整型儲存單元的首地址儲
C++虛基類的作用、用法和意義
教科書上面對C++虛基類的描述玄而又玄,名曰“共享繼承”,名曰“各派生類的物件共享基類的的一個拷貝”,其實說白了就是解決多重多級繼承造成的二義性問題。例如有基類B,從B派生出C和D,然後類F又同時繼承了C和D,現在類F的一個物件裡面包含了兩個基類B的物件,如果F訪問自己的從
enum(列舉)函式的用法和意義
枚 舉(enum) 列舉是一個被命名的整型常數的集合, 列舉在日常生活中很常見。 例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, 就是一個列舉。
在js中arguments.length的用法和意義
function imagePreload() { var imgPreload = new Image(); for (i = 0; i <arguments.length; i
Java中PreparedStatement和Statement的用法區別
aik txt 實例 什麽 一點 所有 一個 drop passwd Java中PreparedStatement和Statement的用法區別 (2012-08-01 11:06:44) 轉載▼ 標簽: 雜談 1、 PreparedStatem
Java的static和final關鍵字的用法
and logs png 大寫 內存地址 imp 自己 普通 字母 static關鍵字的用法 static的意思是“’靜態的”,在java裏面可用於修飾屬性和方法。 static關鍵字的應用應註意以下幾種情形: 1.static作用於某個字段,一個sta
JFileChooser和FileFilter的使用,以及Java RandomAccessFile用法
選擇 沒有 定義 相關 lte inpu 概念 獨立 文件 今天學習前輩的一個p2p下載的源代碼,其中遇見了兩個小問題,上網進行了百度,找到了答案,隨手記錄一下,以便於以後翻看。 1.首先自定義了一個文件下載的主界面,包括了創建任務、暫停任務、繼續任務、刪除任務,點擊創建任
Java中this和super的用法總結
return 類繼承 xtend chinese ati -s sha blog 定義 在JAVA類中使用super來引用父類的成分,用this來引用當前對象。 如果一個類從另外一個類繼承,我們new這個子類的實例對象的時候,這個子類對象裏面會有一個父類對象。怎麽去引用裏面
Java 枚舉用法和原理
HR rgs ring mil 代碼 package 輸出結果 資料 clas 用法: 1 package com.wjq.enums; 2 3 // 用戶狀態 4 // 0:正常狀態(已註冊) 5 // 1:已被封號(已註冊) 6 public enu
JAVA中this和super用法
出現 子句 package code rgs lean 眼睛 都是 java對象 參考網上資料和自行理解總結java中this和super中各自用法及其差異 <一>. this的用法 構造方法是創建java對象的重要途徑,通過new關鍵字調用構造器
Callable和Future用法示例
Callable FutureCallable和Future用法示例: 1.Callable 和 Future接口 Callable是類似於Runnable的接口,實現Callable接口的類和實現Runnable的類都是可被其它線程執行的任務。 Callable和Runnable有幾點不同: (1)Ca
java中.currentTimeMillis的用法和含義
imp public out 不同的 轉化 println mtime 時間格式化 time 用法:可以用法獲取當前時間的毫秒數,可以通過毫秒數進行時間比較,時間轉化以及時間格式化等。public class SystemTime {public static void m
Java之構造器和構造方法的使用和意義
但是 屬性 end 定義 檢查 初始化 當我 還需要 初學 java中構造方法是一個重要的概念,初學時有人會對此構造方法的使用特別是其作用不清楚,下面我就來談談我對java中構造方法的理解,有不對或不清楚的地方希望各位看官提出意見,謝謝! 一.構造方法的定義聲明 構造方法
Java 枚舉(enum) 的常見用法和開發規範
blank index 不重復 light return sin ret lan ood JDK1.5引入了新的類型——枚舉。在 Java 中它雖然算個“小”功能,卻給我的開發帶來了“大”方便。 用法一:常量 在JDK1.5 之前,我們定義常量都是: public stat
java中 this() 和super()的作用及用法
原文地址:http://www.cnblogs.com/hasse/p/5023392.html 一、This Java關鍵字this只能用於方法體中。this只能在類中的非靜態方法中使用,靜態方法和靜態的程式碼塊中絕對不能出現this,並且this只和特定的物件關聯,而不和類關聯,同一個類的不同物件
java物件拷貝——PropertyUtils copyProperties 用法和效能
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Java 中 this 和 super 的用法總結
Java 中 this 和 super 的用法總結。 this 指向物件本身的指標,形參與成員名字重名,用 this 來區分。 super 超(父)類物件的一個指標。 對建構函式對引用: class Person { public stati