了解线程池以及如何从头开始在Java中创建线程池。这篇文章包括简单线程池版本的介绍、实现和测试。
创建和运行线程
线程创建是一个众所周知的过程,有两种方法可以创建它:
- 扩展线程并重写Run方法
- 将Runnable提供给线程构造函数
让我们实现这两个选项:
public static void main(String[] args) throws Exception {
// Thread from runnable
Thread thread = new Thread(() -> System.out.println("hey from runnable"));
// Thead from extened thread class
Thread myThread = new MyThread();
}
static class MyThread extends Thread {
@Override
public void run() {
System.out.println("hey from thread extended class");
}
}
启动方法和运行方法之间的差异
每个线程提供了两个启动其活动的方法,但有一个显著的区别:
- Run方法在当前运行的线程中执行指令。
- 方法在一个新的单独线程中执行指令。
让我们来描述这两种情况: