多线程
-
多线程
并发与并行
-
并发:指的是两个或者多个事件(任务) 在同一时间段内发生的。
-
线程与进程
-
进程:是指一个内存中运行的的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个线程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序就是一个进程从创建、运行到消亡的过程。
-
线程:线程是进程中的一个执行单元,负责当前进程中程序的运行,一个程序中至少有一个线程。一个进程可以有多个线程,这个应用程序也可以称之为多新线程程序。
简而言之,一个程序运行后至少有一个进程,一个进程中可以包含多个线程。
备注:单核处理器的计算机肯定不能并行的处理多个任务的,只能是多个任务在单个cpu上并发的执行。同理,线程也是一样的,从宏观角度上理解线程是一种并行运行的,但是从微观上分析并行运行不可能,即需要一个一个线程的去执行,当系统只有一个cpu的时候,线程会以某种顺序执行多个线程,我们把这种情况称之为线程调度。
线程调度:
-
分时调度:所有的线程轮流使用CPU的使用权,平均分配给每个线程占用CPU的时间
-
抢占式调度:优先让优先级高的线程使用CPU,如果线程的优先级相同,那么会随机一个线程 执行,Java使用的就是抢占式调度方式来运行线程程序。
-
设置线程的优先级
-