线程的基本概念及创建方式

线程的基本概念


进程与线程的区别

进程
解释:硬盘上有一个程序,这个程序叫做360.exe,这是一个程序,这个程序是一个静态的概念,它被存储在硬盘上,但我们单击它的时候,exe文件就会启动,这个时间叫做启动了一个进程。
线程
解释:作为一个进程里面最小的执行单元叫做一个线程,用简单的话讲一个程序里不同的执行路径就叫做一个线程

创建线程的几种方式

1. 通过自己的类继承Thread类,然后通过new创建一个线程,并start启动

public class MainTest {
    public static void main(String[] args) {
        new MyThread().start();
        System.out.println(Thread.currentThread().getName());
    }
}
class MyThread extends Thread{
    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName());
    }
}

2. 通过实现Runnable接口,然后创建Thread,将实现了Runable的类新建后,作为构造方法

 public class MainTest {
    public static void main(String[] args) {
        new Thread(new MyRunnable()).start();
        System.out.println(Thread.currentThread().getName());
    }
}
class MyRunnable implements Runnable{
    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName());
    }
}

3. 带返回的Callable

 public class MainTest {
    public static void main(String[] args) {
        FutureTask<String> futureTask = new FutureTask(new MyCallable());
        try {
            //自动阻塞,当futuretask线程运行完返回结果后,自动唤醒
            futureTask.get();
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        }
    }
}
class MyCallable implements Callable<String>{
    @Override
    public String call() throws Exception {
        System.out.println("return string result after run finish");
        return "I am result";
    }
}`

常见面试题

  1. 启动线程的三种方式
  • new MyThread()
  • new Thread(MyRunnable)
  • Executors.newCachedThreadPool或者 FutureTask+Callable
posted @ 2021-03-08 22:00  心若向阳花自开  阅读(133)  评论(0编辑  收藏  举报