当前位置: 首页 > wzjs >正文

营销型网站建设哪家便宜小程序开发费用一览表

营销型网站建设哪家便宜,小程序开发费用一览表,中国水电建设招标网站,专业网站建设阿里云目录 1. 通信2. 匿名管道2.1 匿名管道的原理2.2 匿名管道的有关代码编写2.2.1 匿名管道代码编写2.2.2 进程池代码 3. 命名管道3.1 创建命名管道的函数3.2 命名管道的原理3.3 命名管道代码的编写 4. system V共享内存4.1 system V共享内存的原理4.2 相关函数4.2.1 shmget 函数4.…

目录

  • 1. 通信
  • 2. 匿名管道
    • 2.1 匿名管道的原理
    • 2.2 匿名管道的有关代码编写
      • 2.2.1 匿名管道代码编写
      • 2.2.2 进程池代码
  • 3. 命名管道
    • 3.1 创建命名管道的函数
    • 3.2 命名管道的原理
    • 3.3 命名管道代码的编写
  • 4. system V共享内存
    • 4.1 system V共享内存的原理
    • 4.2 相关函数
      • 4.2.1 shmget 函数
      • 4.2.2 ftok函数
      • 4.2.3 查看和删除共享内存
      • 4.2.4 shmat 函数
      • 4.2.5 shmctl 函数
    • 4.3 共享内存的性质
    • 4.4 共享内存代码编写

1. 通信

  • 通信概念:两个或者多个进程实现数据层面的交互
    因为进程独立性的存在,导致进程通信的成本比较高

  • 进程间通信的本质:必须让不同的进程看到同一份”资源”------特定形式的内存空间。

  • 这个”资源”谁提供?一般是操作系统
    为什么不是我们两个进程中的一个呢?假设一个进程提供,这个资源属于谁?这个进程独有,破坏进程独立性。

  • “资源”从创建,使用,释放,都是使用系统调用接口!

  • 基于文件级别的通信方式--------管道

进程间通信目的:
数据传输:一个进程需要将它的数据发送给另一个进程
资源共享:多个进程之间共享同样的资源。
通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。
进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。

2. 匿名管道

2.1 匿名管道的原理

管道就是文件
在这里插入图片描述

现在还要一个问题。
如果父进程只是以写或读的形式打开文件,那么子进程也只能是以写或读的形式打开文件,所以父子只能同时读或写。但是我们需要父写子读 或 父读子写。那么只能如下操作:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
真正的管道通信原理:
也说明了管道只能进行单向通信。
在这里插入图片描述

  • 如果我要进行双向通信呢?使用多个管道
  • 如果没有任何关系,可以用我们刚刚讲的原理进行通信呢?不能
    必须是父子关系,兄弟关系,爷孙关系…--------血缘关系,常用于父子
  • 因为管道的内存级文件是匿名的,所以叫做匿名管道‘

2.2 匿名管道的有关代码编写

2.2.1 匿名管道代码编写

在这里插入图片描述
管道的特征:

  • 具有血缘关系的进程进行进程间通信
  • 管道只能单向通信
  • 父子进程是会进程协同的,同步与互斥的——保护管道文件的数据安全
  • 管道是面向字节流的
  • 管道是基于文件的,而文件的生命周期是随进程的!

代码gitee链接: 管道代码编写gitee链接

管道的4种情况:
1.读写端正常,管道如果为空,读端就要阻塞
2.读写端正常,管道如果被写满,写端就要阻塞
3.读嘴正常读,写端关闭,读一段时间后,读端就会读到0,表明读到了文件(pipe)结尾,不会被阻塞
4. 写端是正常写入,读端关闭了。操作系统就要杀掉正在写入的进程。如何干掉?通过信号杀掉。杀掉因为操作系统是不会做,低效,浪费等类似的工作的。
通过13号信号-----SIGPIPE杀掉进程

2.2.2 进程池代码

gitee代码:代码

3. 命名管道

3.1 创建命名管道的函数

创建命名管道的函数:
在这里插入图片描述
在这里插入图片描述
使用该函数之后,一个新的文件就会被创建,该文件为内存级文件。
文件名和路径由自己确定。

3.2 命名管道的原理

具有血缘关系的进程使用匿名管道,没有血缘关系的进程则使用命名管道。
如果两个不同的进程打开同一个文件的时候,在内核中,操作系统只会打开一个文件。
因为该管道文件不需要刷盘,所以直接创建内存级文件。
如何打开同一个文件,文件的文件名+路径相同即可。
在这里插入图片描述

3.3 命名管道代码的编写

gitee链接:代码
内含日志代码编写

4. system V共享内存

4.1 system V共享内存的原理

再次强调:进程间通信的原理是让进程看到同一份资源
在这里插入图片描述

如果要申请共享内存、释放共享内存、关联、去关联-----这些操作都是进程直接做的吗?不是。直接由操作系统来做。
需求方—> 系统调用 —> 执行方

4.2 相关函数

4.2.1 shmget 函数

作用:为共享内存申请空间
在这里插入图片描述

4.2.2 ftok函数

作用:用pathname和proj_id确定一个key
在这里插入图片描述

  1. key是一个数字,这个数字是几,不重要。关键在于它必须在内核中具有唯一性,能够让不同的进程进行唯一性标识
  2. 第一个进程可以通过key创建共享内存,第二个之后的进程,只要拿着同一个key就可以和第一个进程看到同一个共享内存了!
  3. 对于一个已经创建好的共享内存,key在哪?key在共享内存的描述对象中!
  4. 该函数使key的矛盾冲突较小
  5. 当路径不存在时,key就会返回-1;当key与系统中的共享内存相同时,就需要更改pathname或proj_id;

4.2.3 查看和删除共享内存

共享内存的生命周期是随内核的!
用户不主动关闭,共享内存会一直存在。
除非内核重启(用户释放)
在这里插入图片描述

key:操作系统内标定唯一性
shmid:只在你的进程内,用来表示资源的唯一性!

4.2.4 shmat 函数

在这里插入图片描述

4.2.5 shmctl 函数

作用:删除共享内存
在这里插入图片描述

4.3 共享内存的性质

  1. 共享内存没有同步互斥之类的保护机制
  2. 共享内存是所有的进程间通信中,速度最快的!因为拷贝少,管道要拷贝2次,共享内存1次也不用
  3. 共享内存内部的数据,由用户自己维护!

4.4 共享内存代码编写

链接如下:
共享内存代码编写,其中利用了管道解决了共享内存同步问题。

http://www.dtcms.com/wzjs/121955.html

相关文章:

  • 爱发电怎么做网站网站seo运营
  • 网和网站的区别如何开通网站
  • 极简 网站模板国家高新技术企业查询
  • 环球旅行社网站建设规划书论文下载百度到桌面
  • 专业做制作网站新手做电商怎么起步
  • 一个ip可以做几个网站山西网络推广
  • 广州的网站建设公司佛山百度推广电话
  • 动态网站的五个组成部分什么是搜索引擎优化?
  • 网站制作与管理技术...怎么建立网站快捷方式
  • javaee网站开发视频搜索引擎优化seo专员
  • 代写代码的平台seo的基本步骤顺序正确的是
  • 网络营销方式ppt东莞百度seo哪里强
  • 本机做web打开网站无法显示网站网站推广的基本方法是
  • 组建网站建设团队软文代写兼职
  • 安徽海绵城市建设协会网站全网营销思路
  • 做矢量图的网站网址检测
  • 做淘宝要用的网站吗临沂seo优化
  • 个人备案网站可以做支付吗信阳网络推广公司
  • 印度做杂质的网站友情链接还有用吗
  • 怎么向网站添加型号查询功能seo网站优化做什么
  • 网站备案 营业执照副本广告策划公司
  • 阿里巴巴做网站教程六六seo基础运营第三讲
  • 网站开发公司臻动搜索引擎大全排名
  • 网站建设分金手指专业十九网站建设的重要性
  • 普洱做网站的报价百度快照是什么
  • 网站怎么做搜索栏石家庄seo网站排名
  • 网页制作多少分seo全网图文推广
  • 学php动态网站开发好不好今日热搜头条
  • 安阳网站优化公司推荐北京网站优化常识
  • 文化馆网站建设的意义中国十大电商平台排名