进程和线程
什么是进程?
正在运行的程序
是系统进行资源分配和调用的独立单位,每一个进程都有它自己的内存空间和系统资源
多进程的意义?
单进程的计算机只能做一件事情,而我们现在的计算机都能做多件事情:一边玩游戏(游戏进程),一边听音乐(音乐进程)
现在的计算机都是支持多进程的,它们可以在同一时间段内执行多个任务,提高了CPU的使用率。
问题:一边玩儿游戏,一边听音乐是同时进行的吗?(单核)
不是,因为CPU在某一个时间点上只能做一件事情,而我们在玩儿游戏,听音乐的时候,是CPU在做着程序间的高效切换让我们感觉是同时进行的。
这里说一个自己的比喻理解,CPU就像我们的大脑,我们边玩儿游戏,边听音乐,其实也不是同时进行的,在同一时刻,相信大家也能感觉出来,我们的大脑只在处理一件事情,打游戏或者听音乐,只不过大脑在很快的切换打游戏和听音乐这两件事情。
什么是线程?
在同一个进程内,我们可以执行多个任务,这每一个任务就可以看成是一个线程在跑。
线程是进程的执行单元(执行路径)。
是CPU调度的基本单位。
单线程:程序只有一条执行路径
多线程:程序有多条执行路径
多线程的意义?
并不是提高程序的执行速度,而是提高应用程序的使用率。
程序的执行其实都是在抢CPU资源(时间片),即CPU的执行权。
当多个进程在抢CPU资源,而其中一个进程如果执行路径比较多,那么该进程抢到CPU执行权的几率就会比较高。
我们不能保证哪一个线程在哪个时刻能抢到,即线程的执行具有随机性。