线程的状态和生命周期

偏执的太偏执、 2022-05-10 03:14 413阅读 0赞

线程的生命周期分为5个状态。

(1)新建状态(Create):创建一个线程类的对象后,产生的新线程就进入新建状态。

如:Thread myth=new MyThread();

(2) 可运行状态(Runable):也叫就绪状态,调用start()方法后进入。

(3) 运行状态(running):当处于就绪状态的线程被调用并获得了cpu等执行必须的资源时,就进入了运行状态。

  1. myth.run();

(4) 挂起状态(blocked):也叫堵塞状态,当下面的四种情况·之一出现时就会进入:

调用了sleep()方法

调用了wait()方法。

如果线程中使用synchronized来请求对象的锁未获得时。

如果线程中有输入输出操作。

如果一个线程进入了挂起状态,就无法进入就绪队列。这时,通常需要由某些事件才能唤醒,具体由什么唤醒取决于挂起的原因。

(5) 停止状态(dead):线程已经退出运行状态,并且不再进入就绪状态。产生这种现象的原因可能是线程已经执行完毕,或者被另一个进程强行杀死。

70

  1. 线程的基本控制

(1)终止线程

线程run()方法执行完毕后,会自然终止。

也可通过调用stop()方法来终止线程。

(2)测试线程状态

可以通过isAlive()方法来来获取线程是否处于活动状态。start()后,终止前,都属于活动状态。

(3)线程的暂停与恢复

sleep()方法:将线程停止若干毫秒。

join()方法:当前线程等待调用该方法的线程结束后,再恢复执行。

  1. 线程的调度和优先级

设置线程优先级的格式为:

线程名.setPriority(i);

其中,i的取值为1~10,10为最大优先级。

Thread类有三个优先级静态常量:

MAX_PRIORITY:最大优先级,10。

MIN_PRIORITY:最小优先级,1。

NORM_PRIORITY:普通优先级,5。

发表评论

表情:
评论列表 (有 0 条评论,413人围观)

还没有评论,来说两句吧...

相关阅读

    相关 11 线生命周期状态

    1.线程的生命周期(5种状态) 在线程的生命周期中,它会经过新建(New)、就绪(Running)、阻塞(Blocked)和死亡(Dead)五种状态。由于CPU在多条线

    相关 线生命周期状态

    自己学习时总结的线程的状态 第一步:      新建状态:使用new关键字新建线程,此时处于新建状态; 第二步:      就绪状态:当调用了该线程的start()