如何实现Java线程的生命周期命名与代码获取-创新互联

这篇文章主要为大家展示了如何实现Java线程的生命周期命名与代码获取,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。

西陵网站建设公司成都创新互联公司,西陵网站设计制作,有大型网站制作公司丰富经验。已为西陵上千多家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的西陵做网站的公司定做!

一、线程的生命周期

1.五种状态:新建状态、就绪状态、运行状态、阻塞状态、消亡状态

2.就绪状态的线程表示有权利去获取CPU的时间片,CPU时间片是执行权,当线程拿到CPU时间片之后就马上执行run方法,这个时候就代表进入了运行状态

如何实现Java线程的生命周期命名与代码获取

二、线程的调度与控制

通常我们的计算机只有一个CPU,CPU在某一个时刻只能执行一条指令,线程只有得到CPU时间片,也就是使用权,才可以执行指令​。在单CPU的机器上线程不是并行运行的,只有个在多个CPU上线程才可以并行运行。Java虚拟机要负责线程的调度,取得CPU的使用权,​目前有两种调度模型:分时调度模型和抢占式调度模型,Java使用抢占式调度模型​。

分时调度模型:所有线程轮流使用CPU的使用权,平均分配每个线程占用CPU​的时间片;

抢占式调度模型​:优先让优先级高的线程使用CPU,如果线程的优先级​相同,那么会随机选择一个,优先级高的线程获取CPU​时间片相对多一些。

线程优先级​主要分为三种:MAX_PRIORITY(最高级);MIN_PRIORITY(最低级);NORM_PRIORITY(标准)默认

package com.bjpowernode.java_learning;
import com.sun.imageio.plugins.tiff.TIFFT4Compressor;
public class D104_1_MultiThreadDispatchAndControl {
	public static void main(String[] args) {
		//如何获取当前线程对象
		Thread t = Thread.currentThread();
		//t保存的内存地址指向的是线程是“主线程对象”
		//获取线程的名字
		System.out.println(t.getName());
		Thread t2 = new Thread(new Processor104_1());
		t2.start();
		Thread t3 = new Thread(new Processor104_1());
		t3.start();
		//可以给线程起名字
		Thread t4 = new Thread(new Processor104_1());
		t4.setName("t4");
		t4.start();
	}
}
class Processor104_1 implements Runnable{
	public void run() {
		Thread t = Thread.currentThread();
		System.out.println(t.getName());
	}
}

另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享题目:如何实现Java线程的生命周期命名与代码获取-创新互联
网站网址:http://scjbc.cn/article/dssgce.html

其他资讯