Java线程:总结

news/2024/7/4 12:55:24

线程的状态转换图:

  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秒,如果超时,则停止等待,变为可运行状态。

 

当神已无能为力,那便是魔渡众生

http://www.niftyadmin.cn/n/1974376.html

相关文章

class文件的反编译过程

前言 这几天由于工作需要进行了一些反编译的工作,之前的同事离职了,负责的项目代码转交给我,这个项目好长时间没有用了,在看源码的过程中发现里边少了几个类,几经周折找到了以前编译好的jar包。要想恢复就智能进行反编…

2014-11-6Android学习------Spinner下拉选择框控件学习

写一篇文章很辛苦啊!!! 转载请注明,联系请邮件nlp30508qq.com 我学习Android都是结合源代码去学习,这样比较直观,非常清楚的看清效果,觉得很好,今天的学习源码是网上找的源码 百度搜…

诡异的 unnest 函数

为什么80%的码农都做不了架构师?>>> 发现函数 unnest 定义如下: CREATE OR REPLACE FUNCTION unnest(anyarray)RETURNS SETOF anyelement AS array_unnestLANGUAGE internal IMMUTABLE STRICTCOST 1ROWS 100; 为了可读性,这是还原…

简简单单小文章-声明

前言 好长时间也没写文章了,原因有很多,就不在这说了,好不容易有个空了就拿起了java基础翻看着,然后也就有了这篇文章。 正文 java中常用的声明有三种方式,那么这三种方式有什么区别呢?对于jvm熟悉的朋友…

2014-11-6Android学习------Spinner下拉选择框控件学习(二)---监听事件

写一篇文章很辛苦啊!!! 转载请注明,联系请邮件nlp30508qq.com 我学习Android都是结合源代码去学习,这样比较直观,非常清楚的看清效果,觉得很好,今天的学习源码是网上找的源码 百度搜…

[python]代码中包含中文,提示:SyntaxError: Non-ASCII character '\xcd'

解决方法: 把文件编码方式改为gbk即可。在代码开头写上: # codinggbk 转载于:https://www.cnblogs.com/sophia194910/p/5085218.html

一文彻底搞懂正向代理和反向代理

前言 多长时间不写博客了?反正一双手是数不过来了,今天就顺手写点小知识点。主要想说的是正向代理和反向代理。 正文 代理 首先先说概念: 代理的概念是什么呢? 百度百科提供的说明: 代理服务器(Proxy S…

2014-11-6Android学习------在手机上用鼠标绘图的处理---贝塞尔曲线(一)

写一篇文章很辛苦啊!!! 转载请注明,联系请邮件nlp30508qq.com 我学习Android都是结合源代码去学习,这样比较直观,非常清楚的看清效果,觉得很好,今天的学习源码是网上找的源码 百度搜…