1 @Deprecated(since="1.2")Thread.stop()
该方法被声明为废弃方法,不推荐使用,该方法过于暴力,强制结束。该方法会释放它所有的监视器锁,可能会导致数据不一致的问题,举个简单的例子比如i++操作,在一个线程读取I值后被stop掉,其他线程在读取I之后取到的结果是未被写入的结果。
2 Thread.sleep(long millis[,nanos])
使当前正在执行的线程进入睡眠状态(暂时停止执行)以指定的毫秒数为准,线程不会失去任何监视器的所有权。第二个可选参数可以额外的将睡眠时间精确到纳秒。
3 Thread.yield()
让出当前线程的调度权力,但不保证下次竞争还会抢到CPU时间
4 Thread.interrupt(),Thread.interrupted(),Thread.isInterrupted()
中断线程,往往配合isInterrupted方法,优雅的终止线程
interrupted和isInterrupted方法都是判断线程是否被中断,但是interrupted方法会清除当前的中断状态。
也就是说该方法如果被连续调用两次第二次会返回false,除非线程再次被interrupt。
5 Thread.isAlive()
判断线程是否存在,是不是非TERMINATED状态。
6 @Deprecated Thread.suspend(),@Deprecated Thread.resume()
suspend方法挂起一个线程直到该线程被调用resume方法才可以继续执行,suspend方法不会释放锁,在JDK1.2后被声明废弃,因为如果suspend先与resume发生则就会发生死锁。
7 Thread.join([,long millis])
该方法的语义就是当前线程等在待被join的线程上,直到被join的线程结束,当前线程才可以继续执行。
8 setDaemon(boolean on),isDaemon()
守护线程,需要注意的是必须在start方法之前进行设置。