Java(线程的生命周期及调度)

一.线程生命周期
线程是动态的,具有一定的生命周期,会经历从创建,执行,阻塞,直到消亡的过程。在每个线程类中都定义了用于完成实际功能的run方法,这个run方法称为线程体。按照线程体在计算机系统内存中的状态不同,可以将线程分为创建,就绪,阻塞,死亡四个状态。

1.创建状态
当利用new关键字创建线程对象实例后,它仅仅作为一个对象实例存在,JVM没有为其分配CPU时间片等线程运行资源。
2.就绪状态
在处于创建状态的线程中调用start方法将线程的状态转换为就绪状态(也称为可运行状态)。这时,线程已经得到除了CPU时间之外的其它系统资源,只等JVM的线程调度器按照线程的优先级对该线程进行调度,从而使该线程拥有能够获得CPU时间片的机会,一旦该线程获得CPU,就进入运行状态。运行的线程可以调用yield()自动放弃CPU,从而回到就绪状态,以便其它线程能够运行。
3.阻塞状态
阻塞指的是暂停一个线程的执行以等待某个条件发生(如某资源就绪),若线程处于阻塞状态,调度机制就不给它分配任何CPU时间,直接跳过它。
4.死亡状态
当线程体运行结束或者调用线程对象的stop方法后线程将终止运行,由JVM收回线程占用的资源。

二.线程的调度和优先级
当一个线程被创建时,其默认的优先级是5.
在Java中比较特殊的线程是称为守护(Daemon)线程的低级别线程。这个线程具有最低的优先级。用于为系统中其它对象和线程提供服务。将一个用户线程设置为守护线程的方式是在线程对象创建之前调用线程对象的setDaemon()方法。典型的守护线程示例是JVM中的系统资源自动回收线程&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值