结论先放前面:“进程是资源分配的最小单位,线程是CPU调度的最小单位”
首先,我们要知道,CPU是有单核和多核的区分。同一时间段,一个核只能运行一个进程。但是我们平时使用的过程中,会发现我们同时开启的程序远比自身CPU的核数多,这又是为什么呢?简单来说,就是CPU的速度太快了,它在不停地切换进程,快到我们感知不到(废话)。
进程,就是我们平时运行的程序(QQ 音乐 浏览器等),一个程序就是一个独立的进程(有些占用多个进程,可以打开自己的任务管理器看看),共享CPU资源。
线程,其实也可以叫轻量级的进程,它与进程是被包含关系。简单来说,进程就像一个车间,线程就是里面的工人。
但是,本质来说,进程和线程都是对CPU的工作时间段的一个描述,这么说可能有点难理解。
打个比方,我们打开了一个QQ,然后QQ这个进程就获得了CPU的一个核的10秒的使用权;这10秒里,QQ开启了A和B两个线程为我们执行程序,其中A线程为我们获取我们的好友列表并展示出来,而B线程为我们推送了一则新闻。但是就像我上述的,一个核在一个时间段只能运行一个进程,更细点说,就是一个时间段只能执行一个任务。那怎么办呢,QQ这个进程,可能会为A这个线程分配4秒先执行,为B分配6秒后执行。这么说大家应该就能理解了吧。
进程和线程的不同,最根本的就是粒度大小不同。
网友评论