1. 程式人生 > >多線程——通過Callable實現(30)

多線程——通過Callable實現(30)

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)