单核和多核,单进程和多进程,单线程与多线程

之前我对单进程、多进程、单线程、多线程,单核、多核、并发、并行;总是没有详细的认知;因此准备归纳总结下,加强自己的记忆。(这里的并发不是网络并发,请区别对待)

CPU可以分为单核和多核;Application可以分为单进程和多进程;进程可以分为单线程和多线程;而并发和并行是指进程或者线程在不同个数CPU或者不同核数CPU中的执行方式;

我们先理解下进程在CPU中的并行方式:

CPU运行图.png

当应用的进程状态是Running时(使用系统命令top可以查看),调度器会让进程进行排队,然后进入就绪队列,通过分派器,进程控制块处理后,交给CPU,当CPU计算完后,移出队列。到此程序就完成了一次执行。

其实我们不难发现,如果多个进程同时进来,那CPU时间片也是一个一个的运行。由于时间片的切换非??欤旧隙际窃趍s间完成的,所以进程的执行在宏观上是并发的,但是在微观上是串行的。

结论:
  • 调度器CPU分成一段段的时间片;每个时间片有最大时间和最小运行时间(linux下是5ms-800ms)。(时间片算法,咱也不懂,咱也不知道找谁问)
  • os调度系统依次选择每个进程,最多执行时间片指定的时长。
  • 通过进程控制块,我们可以看出一个进程是可以包含多个线程的。
  • 进程是资源分配的基本单位;这里的资源是指:内存、硬盘、显卡、GPS等等,这也就是程序上下文(后面会讲线程是CPU调度和分配的基本单位,要注意区分)

到这里理解了进程在单CPU的运行方式;在单CPU单核中进程的并发;如果是多CPU,进程是可以并行的

进程执行需要系统资源,但是不同的进程间是无法共享CPU,怎么样才能共享资源和CPU呢?线程(有些程序中叫协程)的概念就出现了,线程是被包含在进程中,同一进程中的不同线程可以共享CPU程序上下文(进程被分配到的资源)

在单核单CPU中,在同一个进程中的不同线程想要使用CPU核心,则会进行线程切换,但是由于共享了程序执行环境,这个线程切换会比进程切换开销小很多。注意:由于CPU是单核的,所以同时刻只能执行一个线程,所以说这里依然是并发。

如果我们的CPU是多核的呢?那么进程中的不同线程就可以同时运行了,真正的并行就出现了

到这里理解了同一进程中的单线程和多线程在单CPU的运行方式;在单CPU多核中进程的并行;

文章的开头我们提到过线程是CPU调度和分配的基本单位。要和进程是操作系统进行资源分配的最小单位区分;假设我是CPU,操作系统调度器将一个进程分配给我之后,我拿到进程后,能看到什么,是不是只能看到进程中的多个线程,那么我现在能调度和分配的是不是只能是线程。如果我是4核的,把线程ABCD分配到核心1234,其他的线程依然要等待分配。所以线程是CPU调度和分配的基本单位。

总结

CPU中进程只能是并发,多CPU中进程可以并行。
CPU单核中线程只能并发,单CPU多核中线程可以并行。

  • 多核CPU同时可以执行多个线程,有几个核就能执行几个线程。
  • 这些线程分属不同进程的话就是执行了多个进程。
  • 这些线程分属同一个进程的话就是只执行了一个进程的不同线程。
  • 多核CPU和多个CPU运行机制相同也不同,单就运行多线程任务来讲原理是差不多的。

理解了上面这些关系,再去看看 从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理,思路会更加清晰

最后编辑于
?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,100评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,308评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
    开封第一讲书人阅读 159,718评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,275评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,376评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,454评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,464评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,248评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,686评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,974评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,150评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,817评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,484评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,140评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,374评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,012评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,041评论 2 351