zoukankan      html  css  js  c++  java
  • Java线程:总结

    线程的状态转换图:

      new:新建状态

      Runnable:就绪状态。线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。

      Running运行状态。就绪状态的线程获取了CPU,执行程序代码。 

      Blocked:阻塞状态。阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。

        对于堵塞的情况原因大概有三种:

          1、等待堵塞:运行的线程执行wait()方法,JVM把线程放入等待状态。

          2、同步阻塞:运行的线程在获取对象的同步锁时,该锁被别的线程占用。

          3、其他阻塞:运行的线程执行sleep()或join()方法,或者发出I/O请求时。或者当sleep()状态超时、join()等待线程终止或者超时、或I/O处理完毕时,线程重新转入就绪状态。

      Dead:死亡状态。线程执行完了或者因异常退出了run()方法,该线程结束生命周期。 

    1 注意:
    2     yield():线程让步,暂停当前正在运行执行的线程对象,并执行其他线程。
    3     join():让一个线程A加入到另一个线程B的尾部。在A执行完之前,B不能操作。另外还有超时限制的功能。如join(5000):让线程等待5秒,如果超时,则停止等待,变为可运行状态。
    当神已无能为力,那便是魔渡众生
  • 相关阅读:
    UVa 116 单向TSP(多段图最短路)
    POJ 1328 Radar Installation(贪心)
    POJ 1260 Pearls
    POJ 1836 Alignment
    POJ 3267 The Cow Lexicon
    UVa 1620 懒惰的苏珊(逆序数)
    POJ 1018 Communication System(DP)
    UVa 1347 旅行
    UVa 437 巴比伦塔
    UVa 1025 城市里的间谍
  • 原文地址:https://www.cnblogs.com/liuzhongfeng/p/5080887.html
Copyright © 2011-2022 走看看