【多執行緒】——Runnable如何獲取執行緒執行結果?
由於Runnable裡的多執行緒是沒有返回結果的,那麼現在我想讓Runnable定義的多執行緒有返回結果和能夠拋
出異常該怎麼處理呢?
方案:
在java中提供了一個多執行緒的框架 Executor,用它將Runnable包裝成一個Callable,這樣就有返回值和能
夠丟擲異常了,接下來看看具體是怎麼實現的。
具體實現:
程式碼:
public static Callable<Object> callable(Runnable task)//假設返回物件為Callable1 Public static <T> Callable<T> callable(Runnable task,T result) //假設返回物件 Callable2
FutureTask.get() = null (Callable1
FutureTask.get() = result (Callable2)
以上兩種實現,返回的結果值不同,這樣就可以把Runnable包裝成有返回值的Callable!
相關推薦
【多執行緒】——Runnable如何獲取執行緒執行結果?
由於Runnable裡的多執行緒是沒有返回結果的,那麼現在我想讓Runnable定義的多執行緒有返回結果和能夠拋 出異常該怎麼處理呢? 方案: 在java中提供了一個多執行緒
【多執行緒】採用Callable介面建立執行緒
前言 java5開始,提供了Callable介面,是Runable介面的增強版。同樣用Call()方法作為執行緒的執行體,增強了之前的run()方法。因為call方法可以有返回值,也可以宣告丟擲異常。 Future介面: java5提供了
【多執行緒】檢視JVM中的執行緒名(ThreadGroup)
ThreadGroup類的常用方法activeCount()——返回此執行緒組中活動執行緒的估計數activeGroupCount()——返回此執行緒組中活動執行緒組的估計數enumerate(Thread[] list,boolean recurse)——把此執行緒組中所有
【多執行緒】例項變數(synchronized)與執行緒安全
一、例項變數與執行緒安全: package cn.hncu.lang.thread_; /** * 專案名:例項變數和執行緒安全 * 時間 :2017-9-17 下午2:14:02 */
【Java虛擬機器】Java記憶體模型與執行緒
Java記憶體模型與執行緒 Java記憶體模型 記憶體間互動操作 volatile關鍵字 Java與執行緒 核心實現 使用使用者執行緒實現 使用使用者執行緒加輕量級程序混合實現 Java執行緒的實現
【Linux 執行緒】同一個程序中的執行緒共享哪些資源
程序是具有一定獨立功能的程式關於某個資料集合上的一次執行活動,程序是系統進行資源分配和排程的一個獨立單位. 執行緒是程序的一個實體,是CPU排程和分派的基本單位,它是比程序更小的能獨立執行的基本單位.執行緒自己基本上不擁有系統資源,只擁有一點在執行中必不可少的資源(如程式計數器,一組暫存器和棧)
【轉】C#獲取當前程式執行路徑的方法集合
//獲取當前程序的完整路徑,包含檔名(程序名)。 string str = this.GetType().Assembly.Location; result: X:\xxx\xxx\xxx.exe (.exe檔案所在的目錄+.exe檔名) //獲取新的 Process 元件並將其與當前活動的程序關聯的主模組的
深入理解JVM虛擬機器讀書筆記【第八章】虛擬機器位元組碼執行引擎
8.1 概述 8.2 執行時棧幀結構 8.2.1 區域性變量表 8.2.2 運算元棧 8.2.3 動態連線 8.2.4 方法返回地址
mysql學習【第11篇】:mysql老是停止執行該怎麼解決 mysql老是停止執行該怎麼解決
mysql老是停止執行該怎麼解決 你可能還會遇到無法啟動mysql的錯誤 解決方法如下:
【PHP7核心剖析】3.3 Zend引擎執行過程
3.3 Zend引擎執行過程 Zend引擎主要包含兩個核心部分:編譯、執行: 前面分析了Zend的編譯過程以及PHP使用者函式的實現,接下來分析下Zend引擎的執行過程。 3.3.1 資料結構 執行流程中有幾個重要的資料結構,先看下這幾個
【JavaScript基礎筆記】模組化、立即執行函式應用、閉包應用
模組化:為了提高JS程式碼的長期可讀性,易維護性,將JS程式碼根據其對應的功能塊區分成不同的JS檔案,並將其包裹在立即執行函式內,從而使其中的變數設定為區域性變數,不會造成不同模組的變數汙染。 立即執行函式在 Javascript 中,圓括號()是一種運算子,跟在函式名之後,表示呼叫該函式。
【謊言大揭祕】Modin真的比pandas執行更快嗎?
最近看了某公眾號文章,推薦了所謂的神器,據說讀取速度吊打pandas,可謂牛逼。 抱著學習的精神,網上搜了文章,發現了一些端倪,事實真是這樣嗎?來一起揭祕真相。 首先安裝包 # pip install ray # pip install dask # pip install modin 安裝版本
Tips-Windows 10【多桌面視窗】操作
ges logs 創建 cnblogs com view 正在 blog img Windows 10【多桌面視窗】 當你點擊任務欄上的“task view”按鍵時,會在屏幕中間顯示你當前正在使用的桌面,你可以點擊“添加桌面&rdquo
【反射之Method】如何獲取字節碼對象中的方法
sta leg instance targe throw tex mem port spa ■獲取字節碼對象的方法有兩種 第一種:使用字節碼對象獲取所有的方法(只能獲取公有的方法,而不能獲取私有/受保護的方法) 語法: Class.getMethods() 示例:
【多線程】多線程的常用方法
mar user mas eap doc adb oci left use 頌搶濁吶腥唾韻趁日急感比http://shufang.docin.com/sina_6355808290 傻率行鉀鈉假練笨稭費捎稻http://jz.docin.com/sina_62735472
Codeforces 463D Gargari and Permutations:隱式圖dp【多串LCS】
font 最長路徑 com 一個 -s ++ 路徑 div 都是 題目鏈接:http://codeforces.com/problemset/problem/463/D 題意: 給你k個1到n的排列,問你它們的LCS(最長公共子序列)是多長。 題解:
【unity實用技能】u3d 獲取屏幕的寬高
無想搞個全屏Sprite,獲取Screen.Width什麽的都不對。 因為這個跟你的Camera的aspect有關。 所以有個很簡單的方法 首先一般你的項目都會限度是以寬還是高做基準來拉伸 我們是橫版遊戲,所以是寬做基準 我們的寬定的標準值為1334. 所以是這樣 public int GetScreenHe
【多線程】Task
返回 cto scom str 工廠方法 判斷 屬性 OS 線程 介紹 Task是.NET推出數據任務處理的工作類。位於System.Threading.Tasks命名空間下,通過命名空間也可以看出是個多線程類。 創建Task: Task有很多構造函數,無參有
【多資料來源連線】-Spring整合Hbase、Impala、Orcale三種資料來源
專案中需要按需連線不同的資料來源,原專案預設為mysql連線,現在要新增Hbase、Impala、Orcale三種資料來源,以支援現有的查詢(屬於報表子系統)。 MySql、Orcale、Impala是關係型資料庫,可以用bean來配置
【多次過】Lintcode 94. 二叉樹中的最大路徑和
給出一棵二叉樹,尋找一條路徑使其路徑和最大,路徑可以在任一節點中開始和結束(路徑和為兩個節點之間所在路徑上的節點權值之和) 樣例 給出一棵二叉樹: 1 / \ 2 3 返回 6 解題思路: 利用分治法 解決問題 需要