首先简单的介绍一下线程:

  进程:正在运行中的程序。其实进程就是一个应用程序运行时的内存分配空间。

  线程:其实就是进程中的一条执行路径。进程负责的是应用程序的空间的标示。线程负责的是应用程序的执行顺序。

线程的生命周期:

  一般来说线程状态有一下几种:

  ①新建:

    创建线程对象。

  ②就绪:

    start方法被调用,线程获得了执行资格,但还没有执行权。

    (随机性的原理:因为cpu的快速切换造成,哪个线程获取到了cpu的执行权,哪个线程就执行。)

  ③运行:

    线程获得了CPU的执行权,此状态有执行资格也有执行权。

  ④阻塞:

    由于一些操作让线程处于了该状态,没有了执行资格,也没有了执行权。而另一些操作又可以将线程激活,激活后处于就绪状态。

  ⑤死亡:

    run方法结束,线程对象变成垃圾,等待GC回收。

在顺便介绍一下线程的一些方法:

  void run()   继承Thread或者实现Runnable时必须实现的方法,里面写耗费时间的操作。

  void start() 开启线程的方法

  static void sleep(long t) 释放CPU的执行权,不释放锁

  static void sleep(long millis,int nanos)

  final void wait()释放CPU的执行权,释放锁

  final void notify()唤醒线程池中的任意一个线程

  interrupt():中断线程。

  setPriority(int newPriority):设置线程的优先级。(默认优先级是5)

  getPriority():返回线程的优先级。

  toString():返回该线程的字符串表示形式,包括线程名称、优先级和线程组。

  Thread.yield():暂停当前正在执行的线程对象,并执行其他线程。 礼让线程

  setDaemon(true):将该线程标记为守护线程或用户线程。当正在运行的线程都是守护线程时,Java 虚拟机退出。该方法必须在启动线程前调用。

  join: 加入一个线程,当这个线程执行完之后才会执行别的线程。

Java中线程的生命周期的更多相关文章

  1. 简要分析一下java中线程的生命周期

    面试题:您了解线程吗?简单叙述一下线程的生命周期? 答:之前学过一些有关于线程方面的知识,并且在编写代码的过程中还是要经常考虑线程,所以,我对线程还是了解一点的. 首先,创建一个线程,线程进入初始状态 ...

  2. Java 并发 线程的生命周期

    Java 并发 线程的生命周期 @author ixenos 线程的生命周期 线程状态: a)     New 新建 b)     Runnable 可运行 c)     Running 运行 (调用 ...

  3. Java多线程——线程的生命周期和状态控制

    一.线程的生命周期 线程状态转换图: 1.新建状态 用new关键字和Thread类或其子类建立一个线程对象后,该线程对象就处于新生状态.处于新生状态的线程有自己的内存空间,通过调用start方法进入就 ...

  4. Java多线程-线程的生命周期

    线程可以分为4个状态:New(新生),Runnable(可运行):为了方便分析,还可将其分为:Runnable与Running.blocked(被阻塞),Dead(死亡). 与人有生老病死一样,线程也 ...

  5. Java 之 线程的生命周期(线程状态)

    一.线程的生命周期 (1)新建状态 new 好了一个线程对象,此时和普通的 Java对象并没有区别. (2)就绪 就绪状态的线程是具备被CPU调用的能力和状态,也只有这个状态的线程才能被CPU调用.即 ...

  6. Java之线程的生命周期

    在Java中,线程有5中不同状态,分别是:新建(New).就绪(Runable).运行(Running).阻塞(Blocked)和死亡(Dead).它们之间的转换图如下: 上图有一个例外,调用yiel ...

  7. Java线程池中线程的生命周期

    设:我们有一个coreSize=10,maxSize=20,keepAliveTime=60s,queue=40 1.池初始化时里面没有任何线程. 2.当有一个任务提交到池就创建第一个线程. 3.若继 ...

  8. java笔记线程的生命周期图解

  9. java线程的生命周期及五种基本状态

    一.线程的生命周期及五种基本状态 关于Java中线程的生命周期,首先看一下下面这张较为经典的图: 上图中基本上囊括了Java中多线程各重要知识点.掌握了上图中的各知识点,Java中的多线程也就基本上掌 ...

随机推荐

  1. HP滤波原理浅学

    今天偶然看到如果使用eviews做HP滤波,一时好奇,于是找了点资料看看~ 由于纯属自学,没有找到教材,大家姑且一看咯,也不知道对不对哈.

  2. [Kerberos] User Ticket Management

    Kerberos客户端常用命令包括 kinit, klist, kdestroy, and kpasswd,用户使用这些命令管理自己的 ticket. 此外,每台运行Kerberos的机器应该都配置/ ...

  3. Linux下查看操作系统信息、内存情况及cpu信息:cpu个数、核心数、线程数

    1.查看物理CPU的个数 [root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc ...

  4. 2.1WebApi的路由

    这篇文章描述 ASP.NET Web API如何将 HTTP 请求通过路由去访问控制器. 如果你熟悉 ASP.NET MVC,Web API 路由是非常类似于 MVC 路由.主要的区别是 Web AP ...

  5. 如何有效地描述软件缺陷(Defect)?

    最近一个月偷懒了,刚看到一篇博文很不错.最近也是碰到一样的问题,由于我记录bug的描述不够清晰.导致开发看不懂我描述的bug,还有一些配置信息没记录好.出现一问三不知的情况,还被领导训.下面的博文是来 ...

  6. UIPickerView选择器的使用方法

    UIPickerView是选择列表内容的控件 使用方法与UITableView类似 都需要用array传入数据 用Delegate DataSource中的代理方法实现各种显示功能 @interfac ...

  7. windwos server 路由备份和恢复 路由表备份和恢复

    netsh dump>:c\name.dmp netsh exec >:c\name.dmp

  8. 【XLL 框架库函数】 TempInt/TempInt12

    创建一个包含了 integer 的 XLOPER/XLOPER12 原型 LPXLOPER TempInt(short int i); LPXLOPER12 TempInt12(int i); 参数 ...

  9. SQL查询第m条到第n条的方法

    SQL查询第m条到第n条的方法 如表名为GOOD Sselect top (n-m) * from GOODS where (某一列名) not in (select top m (某一列名) fro ...

  10. RabbitMQ的几种典型使用场景

    RabbitMQ主页:https://www.rabbitmq.com/ AMQP AMQP协议是一个高级抽象层消息通信协议,RabbitMQ是AMQP协议的实现.它主要包括以下组件: 1.Serve ...