2021-04-01

本文详细介绍了Java线程的常用方法,包括start用于启动线程,run方法定义线程执行体,sleep使得线程暂时让出CPU,以及isAlive检查线程是否活动。理解这些方法对于有效控制和协调线程执行至关重要。
摘要由CSDN通过智能技术生成

Java线程的常用方法

  1. start
    线程调用该方法将启动线程,使之从新建状态进入就绪队列排队,一旦轮到它来享用cPU资源时,就可以脱离创建它的线程独立开始自己的生命周期了。需要特别注意的是,线程调用sat0方法之后,就不必再让线程调用stut0)方法,否则将导致 legafThreadsensEcepica异,即只有处子新建状态的线程才可以调用stat()方法,调用之后就开处书以等待CPU资源了,如果再让线程调用startQ方法显然是多余的。
    2.run()
    Tnread 类的um0方法与Runable接口中的run0方法的功能和作用相同,都用来定义线程对象被调度之后所执行的操作,都是系统自动调用而用户程序不得引用的方法。系统的Thread 类中,run(方法没有具体内容,所以用户程序需要创建自己的Thread类的子类,并重写nun0方法来覆盖原来的runO方法。当run方法执行完毕,线程就变成死亡状态,所谓死亡状态就是线程释放了实体,即释放分配给线程对象的内存。在线程没有结束run(方法之前,不赞成让线程再调用star(方法,否则将发生lllegalThreadStateException异常
    3.sleep
    (int millsecond)线程的调度执行是按照其优先级的高低顺序进行的,当高级别的线程未死亡时,低级别线程没有机会获得CPU资源。有时,优先级高的线程需要优先级低的线程做一些工作来配合它,或者优先级高的线程需要完成一些费时的操作,此时优先级高的线程应该让出CPU资源,使优先级低的线程有机会执行。为达到这个目的,优先级高的线程可以在它的run()方法中调用sleep方法来使自己放弃CPU资源,休眠一段时间。休眠时间的长短由sleep方法的参数决定,millsecond是以毫秒为单位的休眠时间。如果线程在休眠时被打断,JVM就抛出InterruptedException异常。因此,必须在try-catch语句块中调用sleep方法。
    4.isAlive()
    线程处于新建状态时,线程调用isAlive()方法返回 false。当一个线程调用 start)方法,并占有CPU资源后,该线程的run(方法就开始运行,在线程的runQ方法结束之前,即没进入死亡状态之前,线程调用isAlive(方法返回true。当线程进入死亡状态后(实体内在释放),线程仍可以调用方法isAlive(O,这时返回的值是false。需要注意的是,一个已经运行的线程在没有进入死亡状态时,不要再给线程分配实体由于线程只能引用最后分配的实体,先前的实体就会成为“垃圾”,并且不会被垃圾收集昌集掉。例如:Thread thread = new Thread(target);thread.start();如果线程 thread 占有CPU资源进入了运行状态,这时再执行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学安全的修狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值