JAVA笔记--《线程》

进程&线程:

进程:

	一个进程就对应一个应用程序

线程:

	进程执行代码的单元
	如果运行java程序会启动JVM(进程),该进程会创建并启动多个线程去执行

并发&并行

并发:
		一个CPU去执行一个或者多个线程,同一时刻,只有一个线程去执行,但是执行一会就会让出CPU给其他线程执行。
	但是交替地速度非常快,给人的感觉同时执行
		让出CPU以后又抢到了CPU线程不是从头开始执行,而是从什么地方停止就从什么地方开始,直到所有的线程执行结束。
并行:
		多个线程占用不同的CPU同时执行。
		用户去设计线程只考虑单核CPU,只考虑并发。

时间片:

		线程占用CPU的一段时间称为时间片
		CPU分给线程去执行代码的一段时间
		时间较短 都是毫秒级别

调度:(抢占式

		如果每个线程的优先级高,CPU就会随机挑选一个线程先去执行一会
		如果优先级越高,有很大几率得到CPU的时间片,有很大可能性先执行完

main线程:

	JVM创建该线程并且启动了
	用来执行main方法

自定义线程

第一种方式
		子类继承Thread类
		重写run方法
		创建线程对象并且调用start方法启动
第二种方式
		直接创建Thread对象
		在其构造方法传入Runnable接口实现对象
		start方法启动
		如果在main线程里面创建并启动了线程,main有可能接着往下执行,也有可能创建的线程执行一会,main线程的结束意味着main方法执行结束。但是JVM进程并没有关闭,当所有的进程执行完毕后,JVM才会关闭。

如果后台线程正在运行,JVM关闭,里面所有的线程都关闭

线程分类:

前台线程(用户线程):
		main线程和用户自定义线程
		都是用来执行用户撰写的代码
		任意一个浅谈线程没有结束JVM就不会关闭,所有的前台线程结束JVM才会关闭。
后台线程(守护线程):
		主要为前台线程运行提供环境
		后台线程正在执行,但是JVM进程恰好关闭了,后台线程也会关闭
		通过线程对象.setDemaon(true)强制的将前台线程转为后台线程

其他非重要特征:

	可以再创建线程或者是线程启动之前赋予一个自定义名字
	也可以在创建线程或者线程启动之前设置线程的优先级
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

啊哈不会秃头

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

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

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

打赏作者

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

抵扣说明:

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

余额充值