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);
        }
    }
}

 

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