zoukankan      html  css  js  c++  java
  • 关于线程和进程的理解

    在知乎上看的关于线程和进程的形象理解,留作纪念。

    这个场景是这样子的,山上有座庙(进程),庙里住了很多小和尚和老和尚(线程),当然隔壁山上也有很多尼姑妹子。小和尚和老和尚们每天都需要下山挑水喝。这些个和尚有刚上山的(就是有点傻的),有比较聪明的,也有闹过矛盾的。场景,人物呢,大概就是这么个样子。

    俗话说的好,有人的地方就有江湖。这些个小和尚,老和尚都不是很安分,为了每天的这个挑水工作闹了很多很多的矛盾,也犯过很多傻。

    下面对挑水工作所有发生的情况做个详述:

    1)刚上山的小和尚挑水,就是比较傻的那个,和别人都不认识,每天挑水都自己一个人,一次挑一桶水,一天下来发现挑的水根本不够喝。(串行

    2)和尚里面有个力气大的,和别人关系不好,每次挑水能挑三桶左右,一天下来,发现挑的水勉强够喝。 (并发

    3)和尚里面有几个关系好的,力气也比较大,每次挑水都一起去,每个人都能挑两桶左右,一天下来,发现挑的水不仅够喝,还有时间帮隔壁山尼姑妹子挑水。 (并行

    4)在水井里打水,有个专门的妹子负责打水,比较傻的那个小和尚每次都盯着打水的妹子,还随时随地看水桶装满没有(同步);当然,有傻的,也有聪明的,这个聪明的和尚在妹子打水的时候,就乘机在一旁休息,水打满以后,妹子都过来告诉他。(异步

    5)水井里有一天没水了,傻和尚看见水井里没水以后,在水井边上一直等着,等有水了再挑回去(阻塞);聪明和尚呢,看见水井里没水了,一点都不犹豫的回去了。(非阻塞

    6)又有一天,那闹过矛盾的两个和尚挑水,正好狭路相逢,谁也不让谁过去,一直僵持着。(死锁

    7)寺庙里厨房空间有限,每次只能进去一定数量的和尚,当厨房满了以后,其他人只能在外面等着,直到里面的人出来。这个实现的方法是,厨房门口挂了很多锁,每个人进去以后都拿走一把锁,出来以后把锁挂上,这样外面的人就可以知道厨房里面人满没满。(信号量

    作者:岳先生
    链接:https://www.zhihu.com/question/19901763/answer/121198143
    来源:知乎
    著作权归作者所有,转载请联系作者获得授权。


    1.单进程单线程:一个人在一个桌子上吃菜。
    2.单进程多线程:多个人在同一个桌子上一起吃菜。
    3.多进程单线程:多个人每个人在自己的桌子上吃菜。

    多线程的问题是多个人同时吃一道菜的时候容易发生争抢,例如两个人同时夹一个菜,一个人刚伸出筷子,结果伸到的时候已经被夹走菜了,此时就必须等一个人夹一口之后,在还给另外一个人夹菜,也就是说资源共享就会发生冲突争抢。
    1:对于 Windows 系统来说,【开桌子】的开销很大,因此 Windows 鼓励大家在一个桌子上吃菜。因此 Windows 多线程学习重点是要大量面对资源争抢与同步方面的问题。
    2:对于 Linux 系统来说,【开桌子】的开销很小,因此 Linux 鼓励大家尽量每个人都开自己的桌子吃菜。这带来新的问题是:坐在两张不同的桌子上,说话不方便。因此,Linux 下的学习重点大家要学习进程间通讯的方法。
    开桌子的意思是指创建进程。开销这里主要指的是时间开销。
    可以做个实验:创建一个进程,在进程中往内存写若干数据,然后读出该数据,然后退出。此过程重复 1000 次,相当于创建/销毁进程 1000 次。在我机器上的测试结果是:
    UbuntuLinux:耗时 0.8 秒
    Windows7:耗时 79.8 秒
    两者开销大约相差一百倍。
     
    作者:pansz
    链接:https://www.zhihu.com/question/19901763/answer/13299543
    来源:知乎
    著作权归作者所有,转载请联系作者获得授权。
    但愿人长久 千里共婵娟
  • 相关阅读:
    react ts axios 配置跨域
    npm run eject“Remove untracked files, stash or commit any changes, and try again.”错误
    java 进程的参数和list的线程安全
    帆软报表 大屏列表跑马灯效果JS
    帆软报表 快速复用数据集,避免重复劳动
    分析云 OA中部门分级思路和实现方法
    分析云 分段器 只显示一个块的数据
    分析云 更改服务默认的端口号
    分析云U8项目配置方法新版本(2)
    Oracle 创建时间维度表并更新是否工作日字段
  • 原文地址:https://www.cnblogs.com/hellcats/p/6077506.html
Copyright © 2011-2022 走看看