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

专业pc网站建设汽车网站策划书

专业pc网站建设,汽车网站策划书,网站如何能吸引用户,下载百度搜索文章目录 创建进程的方法Linuxforkexecsystem Windowscreateprocessshellexecutesystem 进程间通信方法管道#xff08;Pipe#xff09;管道的种类特点 通过文件通信内存映射#xff08;文件映射#xff09;匿名映射 共享内存 信号量(或者锁)消息队列Windows消息队列Linux… 文章目录 创建进程的方法Linuxforkexecsystem Windowscreateprocessshellexecutesystem 进程间通信方法管道Pipe管道的种类特点 通过文件通信内存映射文件映射匿名映射 共享内存 信号量(或者锁)消息队列Windows消息队列Linux消息队列 信号Socket 创建进程的方法 Linux fork 使用fork()函数可以创建子进程子进程复制父进程的虚拟内存。和父进程共享代码。 fork()在父进程中返回子进程ID在子进程中返回0执行错误返回-1。 Linux c/c之进程的创建 exec exec函数簇在子进程占用调用相关函数可以进行进程替换。 即从调用exec开始子进程就替换成exec调用的进程而原本的子进程代码将不再执行。 system system系统调用可以启动一个新的进程但是父进程会挂起等待新的进程结束。 Windows createprocess windows中没有fork()。 windows中一般通过CreateProcess()函数调用一个执行的可执行程序来启动一个新的进程父进程不需要等待子进程结束。 看到网上有在windows中模拟fork()的方法还没看过。 windows下创建进程CreateProcess()详解及用法 shellexecute shellexecute 可以启动一个新的进程父进程不需要等待子进程结束。它支持文件关联即不指定notepad 直接让他打开一个txt文件它也会用notepad或者其他关联的程序打开。 例如 ShellExecuteA(NULL, open, D:\\text.txt, NULL, NULL, SW_SHOWNORMAL);ShellExecute详细用法 system system系统调用可以启动一个新的进程但是父进程会挂起等待新的进程结束。 进程间通信方法 管道Pipe 管道的种类 无名管道通常就叫管道 Pipe命名管道 FIFO-Pipe 特点 windows和linux都支持管道。无名管道用于父子进程之间。命名管道可以用于不相关的进程间的通信。管道是半双工的管道的可以设置阻塞和非阻塞 阻塞 一个为只读而打开一个管道的进程会阻塞直到另一个进程为只写打开管道 一个为只写而打开一个管道的进程会阻塞直到另一个进程为只读打开管道 read()/write()也是阻塞的 非阻塞 以只读方式打开FIFO如果没有进程为写而打开FIFO 只读open成功并且open不阻塞 以只写方式打开FIFO, 如果没有进程为读而打开FIFO只写open将出错返回-1 ENXIO: No Such device or address) read()/write()也是阻塞的 无论是否阻塞像一个读端关闭的管道写入数据会产生SIGPIPE错误 参考 C项目实战-多进程(一篇文章) 命名管道的阻塞和非阻塞模式的初步探讨 通过文件通信 可以通过新建一个文件然后一个进程向里面写一个进程从里面读。 其实这和管道思想类似。 参考C项目实战-多进程(一篇文章) 内存映射文件映射 内存映射就是通过内核把一个磁盘文件映射到进程的虚拟内存中。进程可以通过指针来访问映射的文件内存对文件进行修改内核会负责把修改同步回磁盘文件。 Windows和Linux都支持文件映射文件映射可以用于父子进程之间也可以用于不相关进程用于父子进程之间只需要在fork()之前映射一次就行因为子进程会拷贝父进程的虚拟内存用于不相关进程之间需要两个进程都进行映射。进行文件映射时需要先打开文件获取文件描述符文件映射开始后文件描述符随时可以close。如果用于进程间通信必须设置文件映射为共享的Linux选项是MAP_SHARED使用文件映射也存在谁读谁写的问题它也不是全双工的 匿名映射 就是不指定文件描述符的映射类似于管道和命名管道的区别匿名映射只能用于父子进程之间。 参考 C项目实战-多进程(一篇文章) [内存] windows 实现内存映射 共享内存 信号量(或者锁) 共享内存是一种进程间的通信机制并且也是最底层的一种机制其他的通信机制还有管道消息队列等。 进程之间通过访问一块共享的空间来进行数据的通信交换。具体来讲就是将一份物理内存映射到不同进程各自的虚拟地址空间这样每个进程都可以读写这片相同的物理内存。 共享内存是速度最快的一种进程间通信IPC方式它直接对内存进行存取比操作系统提供的读写系统服务更快。 由上面的描述我们发现当多个进程对同一片空间进行读写时必然会出现同步的问题所以一般共享内存会和信号量或者锁机制一同使用保证数据的一致性。 Windows和Linux都支持Windows中共享内存和内存映射的调用API基本一样都有CreateFileMapping()和MapViewOfFile()根据下面参考文章可以看出原理是差不多的内存映射多了磁盘映射到物理内存这一步。参照内存映射共享内存也可以用于父子进程或者非父子进程。共享内存是高效的进程间通信方法。 参考 【学习笔记】windows 下的 shared memory共享内存原理与实践 C项目实战-多进程(一篇文章) 消息队列 Windows消息队列 Windows中如果是窗口线程是可以通过线程的消息队列进行IPC的但是如果没有窗口线程就没法用这个方法了因为PostMessage函数需要窗口句柄。Windows消息传递的参数是有限制的。WParam和LParam都是32位整数我感觉IPC中Windows的消息只能传递消息本身让接收端对不同消息产生不同处理。 进程间通信IPC-Windows消息 Linux消息队列 消息队列是由消息的链表存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。 来源https://segmentfault.com/a/1190000010739303 Linux中提供了不同进程中发送数据块的方法就是消息队列。 消息队列的好处是消息队列由系统运行发送端和接收端不需要考虑消息的同步问题只需要接收和发送就好了。 消息队列是异步的。发送者和接收者不需要同时在线它们可以独立地工作。这种方式提供了一种高效的通讯方式特别是在高并发的环境中。当队列满时发送者进程可能会被阻塞直到队列中有足够的空间为止。消息队列的大小、每个消息的大小和消息队列的总大小都是由限制的。 参考 Linux进程间通讯方式的深入对比与分析和权衡 - 泡沫o0的文章 - 知乎 【Linux】进程间通信IPC之消息队列详解及测试用例 信号 信号比较麻烦我也没用过直接参考以下文章 参考 C项目实战-信号 信号集未决信号集阻塞信号集 Socket 通过本地Socket来进行IPC本地Sockset和通常的网络Socket设置有点不同参考以下文章。 参考 Linux进程间通信方式–本地socket
http://www.pierceye.com/news/270272/

相关文章:

  • 网站开发系统学习网站需要续费吗
  • 问答网站如何优化wordpress简约电影
  • 公司做网站 手机 电脑wordpress图片批量修改
  • 电子商务网站怎么做建筑安全员考试成绩查询官网
  • 定制制作网站价格表网站设计步骤大全
  • 泉州网站建设制作北京企业网络推广方案
  • wordpress网站模板怎么用新闻类网站开发
  • 怎么换自己的网站服务器手机应用软件开发培训班
  • 大学生网站开发目的建盏厂家
  • 开业时网站可以做哪些活动吗虚拟机安装 wordpress
  • 可以进行网站外链建设的有wordpress 添加顶部公告
  • 电子商务网站建设臧良运课后答案没有网站怎么做链接视频
  • vps搭建网站教程怎么通过互联网做一个服务的网站
  • 建设网站需要从哪方面考虑微信云开发
  • 做环评工作的常用网站大学两学一做专题网站
  • 网站设计的公司如何选seo 优化教程
  • 济南网站中企动力河南网站建设服务
  • 网站建设的定位是什么意思php网站开发实例视频
  • 做资讯类网站需要特殊资质吗宜昌网站排名优化
  • 百度怎么建立自己的网站科技公司网站设计公司
  • 长沙做网站的包吃包住4000网站图片如何做水印
  • wordpress的固定链接怎么设置包头整站优化
  • 瓯海建设网站中国建设劳动协会网站
  • 烟台专业做网站公司有哪些中企动力重庆分公司
  • iis 怎么绑定网站二级目录广东东莞市
  • 运城网站制作公司成crm软件
  • 阿里云网站备案登陆荆州网站开发
  • 06628 网页制作与网站建设深圳建筑人才网为什么电脑打不开
  • 企业网站建设方讯快速建站代理
  • 全面的基础微网站开发wordpress首页插件