Thread类中几个容易混淆的方法

摘自: http://manming.iteye.com/blog/343310

六.sleep(),wait(),join()区别

  在当前实例中调用sleep()方法,会使当前线程进入睡眠状态,一般调用slee()方法时都会传入一个毫秒数作为当前线程睡眠的时间,线程睡眠相应的毫秒后便会重新苏醒,当前线程处于睡眠状态时是不会释放当前对象锁的,其他线程无法获得当前对象的锁,只能等待,这是便会出现线程堵塞的现象.

  wait()方法与sleep()方法的作用其实是一样的,但它们也有不同的地方;wait()方法使当前线程进入等待状态,进入等待状态的线程会释放当前获得的对象锁,以供后续的线程使用.

  join()方法是等待指定的线程运行结束.当调用join()时,当前线程会等待它所连接的线程不再处于活动状态(既线程运行结束).

 

七.interrupted()与isInterrupted()区别

  这两个方法都是用来判断线程是否被中断,它们的区别就在于:

  interrupted()方法是一个静态方法,它是用来判断当前线程是否中断,然后返回一个布尔值;

  isInterrupted()方法必须在一个对象上执行,判断所指定的对象是否已经被中断.

你可能感兴趣的:(thread,活动,Blog)