java 线程

关于线程的一些概念:

  应用程序和进程是一对一的关系,而进程和线程是一对多的关系,也就是说一个进程包含多个线程

线程的状态:

  • 新建状态

      在java中可通过实现Runnable接口或者继承Thread类得到一个新的线程。

  • 就绪状态

      当调用start()方法时,线程处于就绪队列中,等待JVM线程调度器的调度。

  • 运行状态

      当处于就绪队列中的线程得到CPU资源后,就会执行run()方法进入运行状态。

      处于运行状态的进程,可能会发生三种情况:

      1.退回就绪状态

      2.进入阻塞状态

      3.进入死亡状态

  • 线程死锁

      例子:2个人一起吃饭但是只有一双筷子,2人轮流吃(同时拥有2只筷子才能吃)。
      某一个时候,一个拿了左筷子,一人拿了右筷子,2个人都同占用一个资源,等待另一个资源,
      这个时候甲在等待乙吃完并释放它占有的筷子,同理,乙也在等待甲吃完并释放它占有的筷子,
      这样就陷入了一 个死循环,谁也无法继续吃饭。

 

原文地址:https://www.cnblogs.com/luoyunyong/p/9029236.html