进程 线程 协程 单核cpu 多核cpu

一个电脑只有一个CPU。

一个CPU可以有多个核心。

最初一个核心只处理一个线程。单核单线程、双核双线程。但是这会造成资源浪费,打一个比方,一个核心相当于一家超市,A管进货,B管摆货,C管收银。但是现在没有货可摆的时候,B是不是可以去当收银员呢?

这就出现了超线程技术,单核双线程,双核四线程。就是把一个核心模拟成两个核心,在一个核心一些资源闲着的时候,可以利用起来,当成一个核心来用。


在运行一般的小程序,很少有满载的情况,没有满负荷工作的话,总有一些资源在闲置。那这时候,超线程就有用了。
如果是3D渲染一类的极端任务,CPU一直满载,超线程就没什么用了。

 

程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。 一个程序至少有一个进程,一个进程至少有一个线程.

线程是进程的一部分

CPU调度的是线程并非是进程,线程是隶属于进程的,所以我们也可以认为是进程在切换。

系统为进程分配资源,不对线程分配资源,进程内的资源对于线程是共享的。

 

你可能感兴趣的:(后端)