并发与并行
并发
:指两个或多个事件在
同一个时间段内
发生。(宏观上)
并行
:指两个或多个事件在
同一时刻
发生(同时发生)。
,当系统只有一个
CPU
时,线程会以某种顺序执行多个线程,我们把这种情况称之为
线程调度。
进程:
是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多
个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创
建、运行到消亡的过程。
线程
:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程
中是可以有多个线程的,这个应用程序也可以称之为多线程程序。
线程调度:
分时调度
所有线程轮流使用
CPU
的使用权,平均分配每个线程占用
CPU
的时间。
抢占式调度
优先让优先级高的线程使用
CPU
,如果线程的优先级相同,那么会随机选择一个
(
线程随机性
)
,
Java
使用的为
抢占式调度。(CPU(
中央处理器
)使用抢占式调度模式在多个线程间进行着高速的切换。
让
CPU
的 使用率更高。)
创建线程类
1.
定义
Thread
类的子类,并重写该类的
run()
方法,该
run()
方法的方法体就代表了线程需要完成的任务
,
因此把
run()
方法称为线程执行体。
2.
创建
Thread
子类的实例,即创建了线程对象
3.
调用线程对象的
start()
方法来启动该线程
多线程的原理
多线程执行时,在栈内存中,其实
每一个执行线程都有一片自己所属的栈内存空间
。进行方法的压栈和弹栈。