BOB(中国)官方入口-BOB官方下载地址

BOB注册首页你的位置:BOB(中国)官方入口-BOB官方下载地址 > BOB注册首页 > BOB注册首页 腾讯面试:进程通信晓畅么?
BOB注册首页 腾讯面试:进程通信晓畅么?

发布日期:2021-11-21 08:31    点击次数:171

  

BOB注册首页

本文转载自微信公多号「CS指南」,作者大白。转载本文请有关CS指南公多号。

BOB注册首页正午 BOB注册首页

一个阳清明媚的正午,大白到了领导的办公室。

BOB注册首页

大白:领导,从昨天夜晚最先,吾牙稀奇疼,吾感觉吾得往一趟医院...

BOB注册首页

领导:益的,你快往吧哈,近来仔细身体...

BOB注册首页当日下昼 BOB注册首页

腾讯大楼,某会议室内~

BOB注册首页

大白:面试官您益,吾是大白!吾固然刚做事不到一年,但是吾有强横的程基本功以及有雄厚的项现在经验......

BOB注册首页

面试官:走,吾也许晓畅了,接下吾问你点八股...不是,吾们益益探讨一些底层原理。

BOB注册首页

大白:益的,面试官!

BOB注册首页

面试官:先问个浅易的,你讲下进程与线程的不同吧!

BOB注册首页

大白:益的,一个进程里能够包含许多线程!

BOB注册首页

面试官:没了?

BOB注册首页

大白:没了呀。

BOB注册首页

面试官:吾对你的面试差不多了,你回往等结...

BOB注册首页面试正式最先 BOB注册首页

大白:别别别,开个玩乐。其实两者不同还挺大的,先从进程讲首,吾之前就写过一篇讲Linux进程创建的文章...

BOB注册首页

面试官:打断一下,你那篇文章吾望过,写的还不错。吾问点你在文章里没挑到的。你晓畅进程通信吗?

BOB注册首页

大白:晓畅呀BOB注册首页,主要有以下几栽进程通信手段:管道、新闻队列、共享内存、信号量、Socket。

BOB注册首页

面试官:那你平时用过管道的手段进走进程通信吗?

BOB注册首页

大白:用过呀,频繁用。管道有匿名管道和命名管道两栽。吾下面给您详细介绍下。

BOB注册首页

先举个例子吧,下面这条linux命令就行使了管道。

BOB注册首页
echo "I'm dabai" | tee a.out 
BOB注册首页

上面这条命令的详细功能是在Linux限制台输出“I’mdabai”,并且将输出的新闻行为输入传递到a.out文件中。能够望出I的左边是输入,右边是输出。“|”代外的管道随着命令创建,命令实走完善后也会自动烧毁.

BOB注册首页

另外一栽手段就是始末mkfifo表现创建命名管道。

BOB注册首页
mkfifo dabaipipe 
BOB注册首页

上述命令就创建了一个名叫“dabaipipe"的管道。吾们能够向管道中写入新闻,比如:

BOB注册首页
echo "hello ! I'm dabai" > dabaipipie 
BOB注册首页

想要读取管道中的新闻,采用下面的命令就能够啦!

BOB注册首页
cat < dabaipipe  #输出 hello ! I'm dabai 
BOB注册首页

面试官:呦!还不错,那吾问你什么时候该用匿名管道,BOB注册首页什么时候该用命名管道。

BOB注册首页

大白:其实这要从匿名管道的弱点说首。匿名管道有两个弱点这既是他的弱点也是他的特点。

BOB注册首页

匿名管道仅声援父进程和子进程间的通信。

BOB注册首页

匿名管道不声援跨网络的两个进程之间的通信

BOB注册首页

也正是由于这两个特点匿名管道所必要的编制支付比命名管道幼许多。

BOB注册首页

以是什么时候该用匿名管道什么时候该用命名管道就很显而易见了。

BOB注册首页

面试官:等等你说啥?你说匿名管道仅仅声援父进程和子进程间的通信?那你刚才这条命令“echo"I'mdabai"|teea.out”谁是谁的子进程?

BOB注册首页

大白:

BOB注册首页

是如许的匿名管道的创建过程很有有趣吾给您讲一下如许就能解应您刚才的题目。

BOB注册首页

倘若要创建匿名管道吾们必要接下的几步。

BOB注册首页

1.吾们必要创建匿名管道的"管子"其实就是内核中的一段缓存。

BOB注册首页

2.为了通信吾们必要创建一个进程然后在进程中会创建两个文件描述符指向管道的两端。

BOB注册首页

这个时候吾们的匿名管道就变成下面这个样子了。进程想要向管道中输入数据那么就始末输入端描述符进走写入操作想要从管道中取数据就始末输出端描述符进走读取操作。

BOB注册首页

BOB注册首页

从上面的图吾们也能够望出根本异国实现进程间通信。那么怎样实现父进程和子进程通信呢?吾那篇讲进程的文章中讲过父进程创建子进程是怎么创建的行家还记得吗?就是要用fork。父进程始末fork创建子进程子进程会把父进程的代码复制一份如许父进程的输入端描述符子进程也复制到了。这个时候父进程和子进程都会同时指向管道。

BOB注册首页

吾们再将子进程的输入关闭父进程的输出关闭就能够啦!

BOB注册首页

BOB注册首页

至于”echo"I'mdabai"|teea.out“这条命令|双方并不是父子进程那他们是怎么完善进程通信的。其实这两个进程都是始末shell进程fork出的。然后两个进程别离就连接到管道的输入和输出端了。再把有余的输入和输出关闭就能够啦。

BOB注册首页

末了匿名管道的组织图吾就不必画了吧?

BOB注册首页

面试官:要不你照样画一下吧!

BOB注册首页

大白:那益吧...就是下面这个样子!

BOB注册首页

BOB注册首页

面试官:幼伙子能够呀吾对你挺舒坦的吾给你过了。本还想详细问问你进程通信的其它几栽手段但是吾得放工了。你等等下一壁的面试官约你面试时间吧!

BOB注册首页

和面试官添了微信后。望了望时间还走还能回趟公司把餐补领了再回家又是足够的镇日。近来把进程通信其他几栽手段学一学给下一壁面试官讲。

BOB注册首页

参考原料:

BOB注册首页

极客时间《趣谈Linux操作编制》链接:http://gk.link/a/10zn1

BOB注册首页

《Linux编制程、网络程》第7章进程间通信链接:https://www.bilibili.com/video/BV1fE411v7Bb

BOB注册首页 BOB注册首页

JavaGuide操作编制篇链接:https://snailclimb.gitee.io/javaguide/#/docs/cs-basics/operating-system/basis

BOB注册首页

BOB注册首页鸿蒙官方战略配相符共建——HarmonyOS技术社区 BOB注册首页割接战败导致宏大通信故障 BOB注册首页割接战败导致3/4/5G全网通信故障 BOB注册首页日本即时通信巨头Line承认用户数据珍惜存在题目 BOB注册首页科技引领数字赋能|ECS2021第三届中国电子通信与半导体CIO峰会王者归! BOB注册首页三分钟教你读懂通信制定 BOB注册首页 BOB注册首页 BOB注册首页

Powered by BOB(中国)官方入口-BOB官方下载地址 @2013-2021 RSS地图 HTML地图