java線程啟動的三種方式


java線程啟動的三種方式

原生的Thread,Runable和借助concurent包中的Callable與FutureTask,實現有返回值的線程

import org.omg.PortableServer.THREAD_POLICY_ID;

import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;

/** * 實現Thread的幾種方法 */
public class ThreadTest{
    public static void main (String[] args) throws Exception {
        thread t = new thread("thread");
        t.start();


        Thread r = new Thread(new runnableThread(), "runnable");
        r.start();


        FutureTask<Integer> task = new FutureTask<>(new callable());
        Thread c = new Thread(task, "callable");
        c.start();
        System.out.println("返回值" + task.get());
    }
}

class thread extends Thread{
    public thread(String name){
        super(name);
    }

    @Override
    public void run() {
        System.out.println(currentThread().getName() + "啟動了");
        System.out.println("------------------------------------");

    }
}

class runnableThread implements Runnable{

    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName() + "啟動了");
        System.out.println("------------------------------------");
    }
}

class callable implements Callable<Integer>{
    private int i = 1;

    @Override
    public Integer call() throws Exception {
        System.out.println(Thread.currentThread().getName() + "啟動了");
        return i;
    }
}



免責聲明!

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



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