线程的三种实现方式

线程的实现方式

继承Thread继承Thread:

自定义线程类继承Thread--> 重写Run方法--> 编写线程执行体-->创建线程对象,调用Start方法启动线程

public class MyTest extends Thread{
    @Override
    public void run() {
        for(int i=1;i<2000;i++){
            System.out.println("线程任务");
        }
    }
}
class Test{
    public static void main(String[] args){
        MyTest myTest = new MyTest();
        //调用start方法实现的是并行 调用myTest.run方法执行的是串行  开启线程调用start
        myTest.start();
        for (int i = 0; i < 2000; i++) {
            System.out.println("主线程");
        }
    }
}

实现Runnable接口:

public class Test {
    public static void main(String[] args) {
        TicketGrabbings ticketGrabbings = new TicketGrabbings(100000);
        new Thread(ticketGrabbings, "小米").start();
        new Thread(ticketGrabbings, "大米").start();
        new Thread(ticketGrabbings, "++++++++++++++").start();
    }
}
class TicketGrabbings implements Runnable {
    private int NumberOfTickets;
    public TicketGrabbings(int numberOfTickets) {
        NumberOfTickets = numberOfTickets;
    }
    public void TicketGrabbing() {
        while (NumberOfTickets > 0) {
            NumberOfTickets--;
            System.out.println(Thread.currentThread().getName() + "第几张票" + NumberOfTickets);
        }
    }
    @Override
    public void run() {
        this.TicketGrabbing();
    }
}

实现callable接口

public class CallableTest {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        Callable callable = ()->{
            //接口中的call()方法相当于run方法,只不过这个有返回值
            System.out.println("call method begin");
            Thread.sleep(1000);
            System.out.println("call method end");
            int a = 100;
            int b = 200;
            return a+b;
        };
        //创建一个未来任务类对象
        //参数非常重要,需要给以额Callable接口实现类对象
        FutureTask task = new FutureTask(callable);
        Thread thread = new Thread(task);
        thread.start();
        //在主线程main怎么获取task线程的执行结果   get()时会让主线程受阻塞
        Object o = task.get();
    }
}
posted @ 2022-03-11 15:44  Tian-Jotian-Yongxing  阅读(86)  评论(0)    收藏  举报