java知识学习39-线程状态

线程状态:当线程被创建且启动后,总共包括了6种状态。

  

  线程状态图:

    Wai

  

  Timed_Waiting状态:计时等待,时间到期后或接收到唤醒通知,该状态才会解除

    

    计时等待的两种方式:

      sleep(long m)方法:在等待m毫秒后,线程睡醒后进入Runnable或Blocked状态;

      wait(long m)方法:在等待m毫秒后,线程还没被唤醒,会自动醒来进入Runnable或Blocked状态;

    唤醒的方法: 

      notify():多个线程执行时,只能唤醒此对象监视器上(多个线程必须是同一个对象锁)等待的单个线程;

      notifyAll():多个线程执行时,能唤醒此对象监视器上(多个线程必须是同一个对象锁)等待的所有线程;

  Blocked状态:线程阻塞,需要等待其他线程释放锁才有可能被激活。

    

  Waiting状态:无限等待,需要等待其他线程调用notify方法或notifyAll方法才能唤醒

    

    代码案例:

      

  

原文地址:https://www.cnblogs.com/blogofzxf/p/14683649.html