- 进程与线程
同一时间CPU只能执行一个程序,因此程序间会有间断性。但是这个时间非常短,几乎感觉不到,只有在开启了很多个程序之后,会出现明显的卡顿
- 并行与并发
并行:两个任务同时运行---多核CPU,一个核处理程序A,另一个核处理程序B
并发:两个任务同时请求运行,但是处理器一次只能接收一个任务,因为会安排两个任务轮流执行,由于CPU时间片运行时间短,就会感觉两个任务在同时运行
时间片轮转:
假设分配给程序A有执行时间3s,程序A有2个线程:线程A和线程B,则A和B会抢时间片执行,若A首先抢到,且A里面的任务完成需要5s,则在3s之后,时间片会结束,轮询到别的程序,等到再次轮询到A的时候,从上次执行处继续执行
- 休眠:释放CPU时间片
若线程A执行一次,休眠了1s,则剩下的2s会分配给B执行
-
join:加入线程,并让加入的线程执行指定时间或执行完毕
-
中断
-
守护线程:当进程中没有用户线程时,JVM退出
即若主线程执行完毕,守护线程未执行完毕,则JVM退出,守护线程不执行了 -
线程同步:多个线程在同一时间段内只能有一个线程执行指定代码
-
线程安全:线程安全问题都是由全局变量及静态变量引起的,方法中的局部变量分配在栈空间,每个线程有私有的栈空间。因此访问是线程安全的
网友评论