java線程

參考1

參考2

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

   1.繼承Thread類創建線程。

   2.實現Runnable接口創建線程。

   3.使用Callable和Future創建線程。

   4.使用線程池。如:Executor框架

2.四種創建線程的實例

方式1:

public class Main {
    public static void main(String[] args) {
        new MyThread().start();
    }
}
class MyThread extends Thread{
    @Override
    public void run() {
        super.run();
        System.out.println("戒急、戒躁!");
    }
}

方式2:

public class Main1 {
    public static void main(String[] args) {
        new Thread(new MyThread1()).start();
    }
}
class MyThread1 implements Runnable{
    @Override
    public void run() {
        System.out.println("戒急、戒躁!");
    }
}

方式3:

public class CallableThreadTest implements Callable<Integer> {

    public static void main(String[] args) {
        CallableThreadTest ctt=new CallableThreadTest();
        FutureTask<Integer> ft=new FutureTask<Integer>(ctt);
        for (int i=0;i<100;i++){
            System.out.println(Thread.currentThread().getName()+"的循環變量i的值"+i);
            if (i==20){
                new Thread(ft,"有返回值的線程").start();
            }
        }
        try {
            System.out.println("子線程的返回值:"+ft.get());
        }catch (InterruptedException e){
            e.printStackTrace();
        }catch (ExecutionException e){
            e.printStackTrace();
        }
    }

    @Override
    public Integer call() throws Exception {
        int i=0;
        for (;i<100;i++){
            System.out.println(Thread.currentThread().getName()+"==="+i);
        }
        return i;
    }
}

方式4:

public class ThreadPool {
    private static int POOL_NUM=10;

    public static void main(String[] args) {
        ExecutorService executorService=Executors.newFixedThreadPool(5);
        for (int i=0;i<POOL_NUM;i++){
            RunnableThread thread=new RunnableThread();
            executorService.execute(thread);
        }
    }
}
class RunnableThread implements Runnable{
    private int THREAD_NUM=10;
    @Override
    public void run() {
        for (int i=0;i<THREAD_NUM;i++){
            System.out.println("線程"+Thread.currentThread()+"   "+i);
        }
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章