线程: isLive(); 测试线程是否处于活动状态。 long getId() 返回该线程的标识符。 String getName() 返回该线程的名称。 currentThread(); 返回对当前正在执行的线程对象的引用。static Thread interrupt(); 中断线程。并不能中断线程,只是在线程内部打上一个中断标志。 interrupted(); 测试当前线程是否已经中断。 static boolean 这个方法会消除中断标志。 isInterrupted() ; 测试线程是否处于活动状态。void 这个方法不会。 setName(String name) ; 改变线程名称,使之与参数 name 相同。 yield() ; 暂停当前正在执行的线程对象,并执行其他线程。 wait() ; 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待。 wait(long timeout) 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量前,导致当前线程等待。 wait(long timeout, int nanos) 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。 notify() 唤醒在此对象监视器上等待的单个线程。 notifyAll() 唤醒在此对象监视器上等待的所有线程。 wait()和sleep(); wait()释放锁,sleep()不释放锁。 wait()和interrupt(); 当一个线程处于等待状态时,用interrupt()方法可以消除等待。 notify()和 notifyAll(); notify()只能唤醒一个线程, notifyAll() 可以唤醒所有在等待的线程 join()和sleep(); //sleep传递的毫秒数 你一定要得到那么多毫秒 //但是join不一定要等那么久 也有可能小 也有可能大 //小的原因是 因为当前线程已经结节 就isAlive()为false; //大的原因是 因为执行join()需要获得对象锁 加入再此之前对象被其他线程所用 //那么 想要运行join() 就要先等待锁 //等待锁也需要时间 //导致 时间不准确的原因 //1,要考虑 当前线程是否还存活 //2,此方法 要先获得到锁 才能开始执行 //3,在方法的运行过程中 还有可能释放锁