什么是当前线程?
我们知道,在一个单核CPU中,虽然应用可以同时创建多个线程,但是事实上在任一时刻,只有一个线程在运行,我们当前在运行的线程称之为当前线程
(Current Thread)。
需要注意的是,当前线程是不断的在变化的,因为CPU会一会执行这个线程,一会又去执行另外一个线程。因此当前线程并不是固定的。
如果获取当前线程的信息?
在Java中我们可以通过Thread
的静态方法currentThread()
获取当前线程的信息。以下代码用于打印出当前正在执行的线程的名称:
public class CurrentThreadDemo { public static void main(String[] args) { new Thread("custom thread"){ @Override public void run() { System.out.println("当前线程:"+Thread.currentThread().getName()); } }.start(); System.out.println("当前线程:"+Thread.currentThread().getName()); } }
程序的运行结果:
当前线程:main 当前线程:custom thread |
可以看到同样是Thread.currentThread().getName(),但是在主线中和自定义线程中打印出来的内容确是不一样的。事实上,Thread.currentThread()位于哪一个线程的执行代码中,在运行时通过这个方法获取的这个线程,也就是当前线程。