线程的创建与启动

2019-01-23  本文已影响0人  yunmuzhou丶

一、创建线程的三种方式

1.继承Thread类

public class MyThread extends Thread {
    String name;

    public MyThread(String name) {
        this.name = name;
        System.out.println("继承Thread类");
    }

    @Override
    public void run() {
        System.out.println(name + "正在运行……");
    }
}
    public static void main(String[]args){
        MyThread t1 = new MyThread("线程1");
        MyThread t2 = new MyThread("线程2");
        t2.start();
        t1.start();
    }

2.实现Runnable接口

public class MyThread2 implements Runnable {

    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName()+"正在运行……");
    }
}
public static void main(String[]args){
    MyThread2 run = new MyThread2();
    //此处注意需要把run作为参数传到Thread类中
    Thread t1 = new Thread(run,"线程1");
    Thread t2 = new Thread(run,"线程2");
    t1.start();
    t2.start();
}

注意:创建的Runnable实现类只是一个target,不是线程对象,它用来指明线程运行时需要做的任务,Thread类的对象才是线程对象。

3.实现Callable接口

public class MyThread3 implements Callable<Integer> {
    @Override
    public Integer call() throws Exception {
        int a = new Random().nextInt(100);
        System.out.println("线程执行结果 "+a);
        return a;
    }
}
    public static  void main(String[]args){
        Callable<Integer> call = new MyThread3();
        FutureTask<Integer> future = new FutureTask<Integer>(call);
        new Thread(future).start();
    }

二、两种启动方式run()与start()

1.run()

2.start()

上一篇 下一篇

猜你喜欢

热点阅读