this和Thread.currentThread()的区别
我们先来看一下我写的一个试验程序:

这两段代码的运行结果如下:
在c.start();之前,只有一个main线程在运行。我们先运行的CountOperate的构造函数。那么为什么this.getName和Thread.currentThread().getName的运行结果不同呢,分别是Thread-0和main,很显然,现在只有一个线程main在运行,所以解释是,this是继承的子类的线程对象,Thread.currentThread()是当前正在运行的线程对象。也正因如此,this.isAlive的结果是false,Thread.currentThread().isAlive的结果是true,原因是此时Thread-0线程没有在运行中,而main线程在运行中。