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

线程的基本概念


进程与线程的区别

进程
解释:硬盘上有一个程序,这个程序叫做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 futureTask = new FutureTask(new MyCallable());
try {
//自动阻塞,当futuretask线程运行完返回结果后,自动唤醒
futureTask.get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}
class MyCallable implements Callable{
@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  心若向阳花自开  阅读(208)  评论(0)    收藏  举报