Java Callable使用


1. 創建線程的三種方式:

  • 繼承Thread,重寫run方法
  • 實現Runnable接口,重新run方法
  • 實現Callable接口,重寫call方法

2. Callable接口實際上是屬於Executor框架中的功能類,Callable接口與Runnable接口的功能類似,但提供了比Runnable更加強大的功能。

  • Callable可以在任務結束的時候提供一個返回值,Runnable無法提供這個功能
  • Callable的call方法分可以拋出異常,而Runnable的run方法不能拋出異常。

3. 實例

package thread.learn;

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

/**
 * Created by liujinhong on 2017/3/6.
 */
public class CallableAndFuture {
    static class MyThread implements Callable<String> {
        @Override
        public String call() throws Exception {
            return "Hello world";
        }
    }

    static class MyThread2 implements Runnable {
        @Override
        public void run() {

        }
    }

    public static void main(String[] args) {
        ExecutorService threadPool = Executors.newSingleThreadExecutor();
        Future<String> future = threadPool.submit(new MyThread());

        try {
            System.out.println(future.get());
        } catch (Exception e) {

        } finally {
            threadPool.shutdown();
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM