多線程——通過Callable實現(30)
阿新 • • 發佈:2017-06-10
class itl span sta cnblogs over 主體 run 另一個 接口類似於
視頻:https://edu.aliyun.com/course/36/learn?spm=5176.8764728.0.0.fVZ5cb#lesson/433
1.從JDK1.5開始,追加了一個新的開發包:java.util.concurrent,這個開發包主要是進行高性能編程使用的,即這個開發包中會提供一些高並發操作中才會使用的類。在這個包裏面定義有一個新的接口:
public interface Callable<V> { public V call() throws Exception; }
Runnable中的run()方法雖然也是線程的主方法,但是其沒有返回值,因為它的設計遵循了主方法的原則,即線程開始了就別回頭。但是很多時候需要一些返回值,例如:當某些線程執行完成後有可能帶來一些返回結果,這種情況下就只能通過Callable來實現多線程。(JDK中的描述:Callable
Runnable
,兩者都是為那些其實例可能被另一個線程執行的類設計的。但是 Runnable 不會返回結果,並且無法拋出經過檢查的異常。)
範例:使用Callable定義線程主體類
class MyThread implements Callable<String>{ @Override public String call() throws Exception { for(int x=0;x<20;x++){ System.out.println("賣票,x"+x); }return "票賣完了"; } } //這個就是一個線程的主體類了
public class MyThread222 {
public static void main(String[] args) {
}
}
不管何種情況,如果要想啟動多線程只有Thread類的start()方法,
多線程——通過Callable實現(30)