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

wordpress 付费主题谷歌广告优化

wordpress 付费主题,谷歌广告优化,如何做网页广告链接,skxy wordpress前言 那么这里博主先安利一下一些干货满满的专栏啦! 手撕数据结构https://blog.csdn.net/yu_cblog/category_11490888.html?spm1001.2014.3001.5482这里包含了博主很多的数据结构学习上的总结,每一篇都是超级用心编写的,有兴趣的伙伴们都支…

55b442c530014f30b6a3b4eda19d23ec.png

 


前言

那么这里博主先安利一下一些干货满满的专栏啦!

手撕数据结构https://blog.csdn.net/yu_cblog/category_11490888.html?spm=1001.2014.3001.5482这里包含了博主很多的数据结构学习上的总结,每一篇都是超级用心编写的,有兴趣的伙伴们都支持一下吧!
算法专栏https://blog.csdn.net/yu_cblog/category_11464817.html这里是STL源码剖析专栏,这个专栏将会持续更新STL各种容器的模拟实现。

STL源码剖析https://blog.csdn.net/yu_cblog/category_11983210.html?spm=1001.2014.3001.5482


什么是System V的共享内存

进程间通信本质:让不同进程看到同一份资源

共享内存区是最快的IPC形式。一旦这样的内存映射到共享它的进程的地址空间,这些进程间数据传递不再涉及到内核,换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据。

当我们用管道进行进程间通信的时候,我们知道,无论是匿名管道的形式还是命名管道的形式,最后都是需要在磁盘上创建部分空间的。

而共享内存的方案,只需要在内存的级别上创建共享的空间!

02e64df334f04d408603eb90060342f2.png

至于详细的系统调用接口,博主会在代码的注释中进行解释。

今天博主带着大家把框架搭好,关于通信的具体实现,博主会在下一期进行详细的讲解!


代码下载地址 

Git地址https://github.com/Yufccode/BitCode/tree/main/Linux/%E4%BB%A3%E7%A0%81/1126_SystemV%E5%85%B1%E4%BA%AB%E5%86%85%E5%AD%98%E6%A1%86%E6%9E%B6%E6%90%AD%E5%BB%BA


 部分实现原理

9a36e3a23e544a32b771e1064b2c6098.png9f07e20119cf4915a225d4b3c39ef59c.png 41d6034a0e6d40828950a47237b57177.png9dee891625e0436090362a22a31233b2.png4566e7cc304045ebb76a56c18087b075.png 


shmServer.cc和shmClient.cc代码 

注意,仅有这两份代码是不够用的,需要下载代码学习的伙伴要在博主上面提供的链接上下载代码。

这里面是一个完整的项目!

shmServer.cc


#include "comm.hpp"// 为了让key更好看,和命令行输出的对应起来
// 写一个转换成16进制的函数
std::string TransToHex(key_t k)
{char buffer[32];snprintf(buffer, sizeof buffer, "0x%x", k);return buffer;
}int main()
{// 1.创建公共的key值key_t k = ftok(PATH_NAME, PROJ_ID);assert(k != -1);Log("create key done", Debug) << " server key: " << TransToHex(k) << std::endl;// 2.创建共享内存 -- 建议创建一个全新的共享内存 -- Server是通信的发起者int shmid = shmget(k, SHM_SIZE, IPC_CREAT | IPC_EXCL | 0666);if (shmid == -1){// 创建失败perror("shmget");exit(1);}Log("create shm done", Debug) << " shmid: " << shmid << std::endl;//3.将制定的共享内存,挂接到自己的地址空间sleep(3);char* shmaddr = (char*)shmat(shmid,nullptr,0);Log("attach shm done", Debug) << " shmid: " << shmid << std::endl;sleep(3);//我们会看到 挂接数会从0变成1!// ================= 这里面就是通信的逻辑了!================= ////...// ================= 这里面就是通信的逻辑了!================= ////4.解除挂接//  将制定的共享内存,从自己的地址空间中去关联int n = shmdt(shmaddr);assert(n!=-1);(void)n;Log("detach shm done", Debug) << " shmid: " << shmid << std::endl;sleep(3);// last. 删除共享内存//IPC_RMID表示,即便是有进程和当下的shm挂接,依旧删除共享内存int n = shmctl(shmid, IPC_RMID, nullptr);assert(n != -1);(void)n;Log("delete shm done", Debug) << " shmid: " << shmid << std::endl;return 0;
}

 shmClient.cc


#include "comm.hpp"int main()
{key_t k = ftok(PATH_NAME, PROJ_ID);if(k<0){Log("create key failed", Error) << " client key: " << k << std::endl;exit(1);}Log("create key done", Debug) << " client key: " << k << std::endl;//获取共享内存int shmid = shmget(k,SHM_SIZE,IPC_CREAT);if(shmid<0){Log("create shm success", Error) << " client key: " << k << std::endl;exit(2);}Log("create shm failed", Debug) << " client key: " << k << std::endl;sleep(5);//char* shmaddr = (char*)shmat(shmid,nullptr,0);if(shmaddr ==nullptr){Log("attach shm failed", Error) << " client key: " << k << std::endl;exit(3);}Log("attach shm success", Debug) << " client key: " << k << std::endl;sleep(5);//使用//去关联int n = shmdt(shmaddr);assert(n!=-1);Log("detach shm success", Debug) << " client key: " << k << std::endl;sleep(5);//client要不要chmctl删除呢?不需要!!!return 0;
}

尾声

看到这里,相信大家对System V通信结构的基本搭建已经有了一定的理解了!如果大家觉得这篇文章对你们有帮助的话,不要吝啬你们的点赞收藏哦!

 

http://www.yayakq.cn/news/910251/

相关文章:

  • 加盟手机网站源码网站建设美文
  • 企业网站建设系统常德建设网站
  • 手机网站图片切换色系网站
  • 文库网站怎么做seo优秀答辩ppt范文10页
  • 什么是移动网站开发网站开发中心
  • 千瓜数据更换模板对网站seo的影响
  • 域名绑定网站提示正在建设app免费开发
  • node.js 做网站网络整合营销传播
  • 免费建网站家谱系统电子商务网站建设李洪心课后答案
  • 做网站美工的理由wordpress安装 503
  • 被称为网站开发神器网站页面设计制作费
  • 临清网站制作公司松江做网站的公司
  • 自己做电视视频网站吗红酒购物网站源码
  • 九江县网站建设一般通过什么来进行知识点挖掘
  • tp框架做视频网站兴宁网站建设设计
  • 图片交易网站如何建设做网站上传图片多大合适
  • wordpress 架站响应式网站建设好么
  • 深圳网站定制开发苏州网站建设制作工作室
  • 常州市金坛区网站建设佛山推广seo排名
  • 长春网站建设wang免费asp网站模板带后台
  • 网站规划建设心得与体会机构协会
  • 国外做游戏的视频网站旅游网站营销
  • 一台vps可以做几个网站动漫网站设计源代码
  • 无锡网站开发公司微商货源网站源码
  • 网站开发课程设计培训可以做直播的游戏视频网站
  • dwcc如何做网站附近的电脑培训班在哪里
  • 网站去哪里备案哪里有专门做网站的
  • 郑州做网站设计建设世界一流企业
  • 辽宁网站建设论坛做网站的计划概要
  • 苏州企业网站建设制作方案wordpress插件dx seo