runnable
介面不能返回結果,在jdk1.5之後增加了callable
兩者最大的不同點是:實現callable
介面的任務執行緒能返回執行結果;而實現runnabl
e介面的任務執行緒不能返回結果;
callable
介面的call()
方法允許丟擲異常;而runnable
介面的run()
方法的異常只能在內部消化,不能繼續上拋;
注意點
callable
介面支援返回執行結果,此時需要呼叫futuretask.get()
方法實現,此方法會阻塞主線程直到獲取『將來』結果;當不呼叫此方法時,主線程不會阻塞!
public
class
futrue
implements
callable
@override
public integer call() throws exception
}public
static
void
main(string arg) throws interruptedexception, executionexception
}
非同步執行緒:pool-1-thread-1
計算之後的num=20
主線程名:main
計算之前的num=10
通過執**況我們可以看到非同步執行的結果最後在呼叫task.get()
方法時返回了計算後的結果。 java非同步任務
最近工作中遇到了個問題,需要使用非同步呼叫某方法 大致意思就是新開乙個執行緒去執行該任務 直接使用了springboot中的 async 目錄結構 配置類 package com.study.asynctask.asynchron import org.apache.tomcat.util.thre...
java同步非同步
同步 傳送乙個請求,等待返回,然後再傳送下乙個請求 非同步 傳送乙個請求,不等待返回,隨時可以再傳送下乙個請求 同步可以避免出現死鎖,讀髒資料的發生,一般共享某一資源的時候用,如果每個人都有修改許可權,同時修改乙個檔案,有可能使乙個人讀取另乙個人已經刪除的內容,就會出錯,同步就會按順序來修改。非同步...
java 非同步呼叫
業務要求流程流轉與資料記錄 插表 非同步進行 使用執行緒池實現非同步呼叫 1.執行緒池配置 name esg.taskexecutor class org.springframework.scheduling.concurrent.threadpooltaskexecutor name corepo...