2.1 ForkJoinPool底层原理分析
2.1.1 JDK19中的虚拟线程
首先注意要把项目切换成JDK19
首先我们这里有两个线程,一个是newFixedThreadPool,就是一个普通的线程池,另一个是我们的虚拟线程newVirtualThreadPerTaskExecutor。这里只有一个线程(newFixedThreadPool(1)),主线程等待时间为5秒。
MyTask类的代码如图所示
那么它们两个有什么区别呢,我们把newVirtualThreadPerTaskExecutor注释掉,然后来run一下,下图是newFixedThreadPool的运行结果
我们可以看到这个任务是一秒执行一次,看运行结果中的时间51:01,51:02
下面我们切换为newVirtualThreadPerTaskExecutor虚拟线程来试