栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【2022.6.2】Java线程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【2022.6.2】Java线程

进程

简介:一个正在进行的程序
从内存的角度来看,当程序运行时,系统会为其分配一定的运行空间(运行内存上),这片空间就是进程

线程

线程: 简介:代码的一条执行路径
1,JAVA程序在运行时自带一条线程,这条线程称为主线程(Main线程) 2,一个进程中可以有多个线程,一个进程中有多个线程称为多线程 
3,多个线程在抢夺CPU执行权,谁抢夺谁执行一句代码,然后从新抢夺,所以微观考虑他们是交替执行. 因为抢夺CPU执行权的速度很快所以说宏观上是同时执行的 
线程与进程的关系:
1,一个进程中可以有多个线程 
2,一个进程至少有一个线程,如果一个前台线程都没有,那么该进程执行结束,进程将被销毁 
3,进程间不能共享临时数据,多个线程之间可以共享临时数据
4,本质上进程是一个程序的运行空间,线程是代码一条执行路径线程的组成: 
	1,CPU时间片:抢夺到CPU执行权后,可以执行的时间 (系统为每个线程分配的运行时间)
    2,运行数据 堆,多个线程之间共享 堆里面的数据 栈,一个线程拥有独立的栈
    3,线程的执行逻辑 

进程和线程的关系

一个进程中至少要有一个线程(而且必须是前台线程)
一个进程中可以容纳多个线程,
进程间无法共享数据,线程之间数据可以共享

线程的创建方式

方案一:创建线程对象
方式一:
	使用匿名内部类形式创建线程对象
	Thread 变量名= new Thread(){ public void run(){ } }; 
方式二:
	创建一个类继承于Thread,重写run 方法 
	class 子类名 extends Thread{ 重写run方法 } 类名 对象名= new 子类名() 
创建Thread的子类对象 步骤: 1,找一个类继承于Thread 2,重写run方法 3,创建该类对象 或 1,创建一个继承与Thread的匿名内部类对象 2,重写run方法
方案二:
方式一:使用Runnable接口

线程的方法

1.线程的启动 :
线程对象.start();
2.线程如何结束:
?----?执行完线程的run方法的代码(run里面的是子线程的)------->线程一经启动不收控制 
3.线程的休眠: 
线程在休眠时不会抢夺CPU的执行权, 使用: 
	Thead.sleep(休眠时间单位毫秒); 
4.线程的名称 设置线程名称:
	方式一:
		创建对象时, new Thread( Runnable r, String name) 
	方式二:
		使用线程对象设置线程名称: 线程对象.setName(""); 获取线程名称: 线程对象.getName(""); 
5.获取当前线程对象 Thread 								thread=Thread.currentThread(); 
6.线程的礼让: 释放已经抢夺到的CUP执行权:
	public static void yield(); 
7.线程的合并 将线程A合并到线程B:
	public final void join() 
	A.join()
8.守护线程 --------> 线程启动前必须调用此方法 
	public final void setDaemon(boolean on)
	将此线程标记为daemon线程或用户线程。 当运行的唯一线程都是守护进程线程时,Java虚拟机将退出。 
9.线程的优先级别 * 优先级大的线程,要比优先级小的先执行 * 但是还是要符合线程的特点,线程的执行具有随机性 
	* public final void setPriority(int newPriority)		设置优先级 
	public final int getPriority():
		获取优先级 
		注:10为最大优先级,1为最低

线程的状态

线程的5个状态 
1、新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread(); 
2、就绪状态(Runnable):当调用线程对象的start()方法(t.start();),线程即进入就绪状态。处于就绪状态的线程,只是说明此线程已经做好了准备,随时等待CPU调度执行,获取cpu 的使用权,并不是说执行了t.start()此线程立即就会执行 
3、运行状态(Running):可运行状态(runnable)的线程获得了cpu 时间片(timeslice) ,执行程序代码。 当CPU开始调度处于就绪状态的线程时,此时线程才得以真正执行,即进入到运行状态。注:就 绪状态是进入到运行状态的唯一入口,也就是说,线程要想进入运行状态执行,首先必须处于就绪状态中; 
4、阻塞状态(Blocked):处于运行状态中的线程
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/947107.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号