基础概念-进程与线程

1234.png

相同点

  1. 用于实现多任务并发
  2. 在多任务环境下功能上并没有太多的差异
  3. 拥有实体,是系统独立管理的单独个体
  4. 子进(线)程在调度的时候竞争起来和他们的父亲平等

实现方式

进程是资源分配的基础单位,线程是系统调度的基础单位

可以认为进程是一个工厂,线程是在工厂中进行工作的工人,政府的调度自然是能够以工厂为单位的,但是能够在细分一些,精确到个人。
而分配资源的时候应当是分到工厂中,如同机器,车间等,因此线程想要有效,首先需要的肯定是一个进程,实际上这个进程和依附于他的线程是一个共存关系,因此我们其实也是可以称这个进程为父线程。

正因为如此,在多任务环境下,一个进程的终结并不会影响另一个进程的执行,但是对于多线程而言,如果父线程被终结了他的所有子线程里所应当的都要被终结,因为这个时候他们所依附的资源会被全部剥夺。

进程通过fork(),vfork()来实现申请,这两者的区别最主要在于子进程是否仍然使用父进程的资源空间。
线程通过pthread_create来进行申请。

多任务设计模式的区别

进程和线程一个非常大的差别在于他们的资源方式,除了vfork出来的进程,两个进程之间是不共用资源的,比如说客户机提交了一个工作来让你处理,你需要处理完了之后,再张开一个进程从而达到第一个进程仍然能够接受以后的请求的目的,形成这样一个流水线式的操作。这个时候两个操作部分拥有自己的独立空间就非常必要,而如果是多线程的话,因为是共用了资源,所以一旦父线程接受下一个部分的时候刷新了子进程所需要使用的变量,就会引发不可避免的错误。
但是实际上资源互不独立同样也有他的好处,这个在讲到通信方式的时候再提。

通信方式的不同

进程通信方式
  1. 信号量
  2. 共享内存
  3. 消息队列
  4. 信号
  5. 文件
  6. socket
  7. 有名管道
  8. 无名管道
线程通信方式
  1. 信号
  2. 互斥量
  3. 自旋锁
  4. 读写锁
  5. 条件变量
  6. 信号
    有一点值得注意的是,进程和线程之间的信号不互通,也就是说不能够接受彼此的信号,只能够接受他们同族的

进程采用的方式要么需要切换内核上下文(因为所有的进程调度都必须是通过系统内核来实现的,这是需要一个切换到内核中的一个操作,从用户态陷入到内核态有非常大的时间浪费),要么是通过外设实现的,相对而言,线程的通信方式因为不需要内核切换(内核线程除外,实际上是每一个进程中必然有一个线程与内核线程相关联,但其实只是用户态的进程中的线程切换的化是没有问题的),所以通信速度相对更快,同时也兼容本身进程所支持的通信方式。
因此线程有13种通信方式而进程有8

资源管理方式的异同

进程部分

进程本身是系统分配资源的基本单位,所以如果有多个进程之间要进行资源共享,只能够通过进程同步方式来进行共享,诸如共享内存和消息队列,至于这两个区别在这里就不详细去展开了

线程部分

线程之间的共享资源只需要直接使用全局变量即可,因为在创建线程的clone中已经指定了他们的内存,文件,文件系统和信号共享了。同时也可以通过使用malloc()来动态申请

同时我们可以明白一个地方,在面对一些我们想要在即使意外终止之后仍然可以健壮复原的内存的话,我们实际上是可以通过共享内存来进行实现的,因为共享内存在系统中是独立存在于进程与线程之外的地方,我们可以通过对共享内存部分进行加锁,在重新获得状态之后check共享内存即可重新恢复状态,但是问题也同样处在他的共享性上,因为这样的话,其实你的内存部分就会对于整个系统可见,其他进程也可以对你的数据进行覆写。

附图


image.png

image.png

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

推荐阅读更多精彩内容