时间:2021-05-20
一、线程的生命周期
1.五种状态:新建状态、就绪状态、运行状态、阻塞状态、消亡状态
2.就绪状态的线程表示有权利去获取CPU的时间片,CPU时间片是执行权,当线程拿到CPU时间片之后就马上执行run方法,这个时候就代表进入了运行状态
二、线程的调度与控制
通常我们的计算机只有一个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()); }}三、源码
D104_1_MultiThreadDispatchAndControl.java
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Java线程的生命周期的详解对于多线程编程而言,理解线程的生命周期非常重要,本文就针对这一点进行讲解。一、线程的状态线程的存在有几种不同的状态,如下:New状态
本节引言1.线程的相关概念1)相关概念:2)线程的生命周期:3)创建线程的三种方式:2.Service与Thread线程的区别3.Service的生命周期图4.
本文实例讲述了React生命周期原理与用法。分享给大家供大家参考,具体如下:React生命周期生命周期概览生命周期的状态组件的生命周期可分成三个状态:Mount
Java垃圾回收与对象生命周期详解Java中的垃圾回收与对象生命周期1.垃圾回收垃圾回收是Java程序设计中内存管理的核心概念,JVM的内存管理机制被称为垃圾回
目录:1.须知:主线程Looper生命周期和Activity的生命周期一致。非静态内部类,或者匿名内部类。默认持有外部类引用。2.原因:Handler造成内存泄