线程

创建线程的方式?

继承Thread

实现Runable接口

实现Callable接口(可以获取线程执行之后的返回值)

但实际后两种,更准确的理解是创建了一个可执行的任务,要采用多线程的方式执行

在实际开发中,我们通常采用线程池的方式来完成Thread的创建,更好管理线程资源

class MyThread extends Thread{

  public void run(){  //重写run方法

     sysout(Thread.currentThread().getName()+"running")

}

}

public static void main(String[] args){

MyThread =new MyThread();

thread.run();//调用方法并非开启新线程

thread.start();

 

MyTask task= new MyTask();

task.start()// 并不能直接以线程启动

new Thread(task).start();//他表达的是一个任务,需要启用一个线程来执行

 

}

 

class MyTask implements Runnable{

  public void run(){

sysout

}

}

案例:实现runnable只是创建了一个可执行任务,并不是一个线程

 

class MyTask2 implements Callable<Boolean>{

 

    public Boolean call() {

 

}

}

案例3 runnable vs callable 

有无返回值的问题

明确一点:

本质上来说创建线程的方式就是继承Thread

就是线程池,内部也是创建好线程对象来执行任务

 

posted @ 2021-07-15 10:08  王子剑  阅读(31)  评论(0编辑  收藏  举报