睡眠(sleep):

使用sleep方法提供两种重载版本,一种指定毫秒级的睡眠时间,另一种指定毫微级的睡眠时间。然而,sleep方法并不能保证这些睡眠时间是完全准确的,因为他们受限于后台的操作系统所提供的精度。此外,睡眠时间可以被中断结束。

中断:

中断是提醒一个线程,让它停止现在所做的事来做一些其他的事情。程序员决定一个线程对某个中断具体如何响应,但通常情况下,线程会终止。

中断状态标记:

中断机制是使用名为中断状态(interrupt status)的内部标志实现的。调用Thread,interrup方法会重置此标记。当线程调用静态方法Thread、interrupted检查中断时候,会清除中断标志。而某个线程用来查询另一个线程中断状态的非静态方法 isInterrupted方法并不改变中断状态标记。

联合(join):

join方法允许线程等待另一个线程结束。

同步(Syschronized):

线程主要通过对某块字段和引用字段所引用的对象们的共享存储来实现通信。这种形式的通信非常有效,但可能出现两种错误:线程冲突和内存一致性错误,防止这些错误的工具是同步的。
然而同步可能引入线程竞争,当两个或多个线程试图同时访问相同的资源,并导致了Java运行时,更慢地执行一个或多个线程,或者甚至暂停其执行时,线程竞争就发生了、饥饿和和活锁是线程的竞争的形式。