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

wordpress多站模式怎么策划一个网站

wordpress多站模式,怎么策划一个网站,展厅展台设计搭建,域名和服务器多少钱文章目录 前言fork 基本概念代码演示示例1#xff1a;体会 fork 函数返回值的作用示例2#xff1a;创建多进程#xff0c;加深对 fork 函数的理解 前言 本篇介绍 fork 函数。 fork 基本概念 pid_t fork(void) fork 的英文含义是分叉#xff0c;在这里就是 … 文章目录 前言fork 基本概念代码演示示例1体会 fork 函数返回值的作用示例2创建多进程加深对 fork 函数的理解 前言 本篇介绍 fork 函数。 fork 基本概念 pid_t fork(void) fork 的英文含义是分叉在这里就是 创建子进程。返回值失败-1成功两个返回值如果当前进程是 父进程则返回子进程的 id如果当前进程是 子进程返回 0返回 0 也表示创建子进程成功可以通过 fork 的返回值判断当前进程是 父进程 还是 子进程。 是的你没有看错fork 有两个返回值这属实有点逆天。 那么 fork 的两个返回值有什么用呢 不着急回答我们先图解一下 fork 左侧是 a 文件中的代码在 fork 函数前有一堆代码在 fork 函数后有两行。 在执行 fork() 后创建了一个子进程(右图)子进程拥有和父进程一样的代码。【其实是不完全一样的本篇是浅谈所以不搞复杂了】 重点来了 子进程拥有和父进程一样的代码。子进程会和父进程一起执行后续的代码。 如果只想让父进程执行 代码1子进程执行 代码2该怎么做呢 这里 fork 的返回值就派上用场了fork 的返回值就是用来区分父、子进程为父、子进程指定不同的业务具体实现会在代码演示中介绍。 代码演示 关于 fork 的概念没什么可说的直接结合代码更深入的理解 fork 吧。 示例1体会 fork 函数返回值的作用 #include stdio.h #include unistd.hint main() {int pid ;printf(AAA\n\n);pid fork();if(pid 0) {printf(开始执行父进程的代码\n);printf(Im parent, my id %d .\n, getpid());printf(父进程的代码执行完毕.\n\n);} else if(pid 0) {printf(开始执行子进程的代码\n);printf(Im child. my id: %d\n, getpid());printf(子进程的代码执行完毕.\n\n);}printf(BBB.\n); } 【非常重要】我们分析以上的输出结果 ① 两个分支都执行了这证明 fork 返回了两个值父、子进程会各自进入条件逻辑中执行自己的代码。 ② “BBB” 被输出了两次这说明 父、子进程都会执行 fork 函数后面的代码只有在遇到条件逻辑时父子进程 才会执行各自的代码。 ③ 通过 fork 的返回值可以区分 父、子进程从而为 父、子进程 分配不同的业务逻辑。 ④ fork 之后 父进程 和 子进程 的执行顺序不确定这取决于内核所使用的调度算法。【这点没体现出来但是得知道】 到此fork 的返回值就解释完了。 我们最后再通过创建多进程来加深对 fork 函数的理解。 示例2创建多进程加深对 fork 函数的理解 我们知道创建进程使用的是 fork 函数那么创建多进程自然就是循环调用 fork 函数了。 最容易想到的是下面这样 for(i0; i5; i) {// 创建 5 个进程pid fork();if(pid 0){printf(我是第 %d 个 子进程.\n, i);}}你仔细想想这对吗 我们运行一下 原因就是上面提到过的第 ② 句 父、子进程都会执行 fork 函数后面的代码只有在遇到条件逻辑时父子进程 才会执行各自的代码 。 也就是说父进程在创建出子进程后子进程也会继续执行 for 里面的语句这就会导致子进程继续创建 子子进程子子进程 也会继续执行 for 里面的语句然后以此类推子子进程再创建 子子子进程 … 要解决这个问题就是创建出子进程后让子进程执行完逻辑后就马上退出 for 循环不要继续创建 子子进程。 正确逻辑如下 #include stdio.h #include unistd.hint main() {int pid, i;for(i0; i5; i) {// 创建 5 个进程pid fork();if(pid 0){printf(我是第 %d 个 子进程, pid: %d\n, i, getpid());break; // 直接让子进程跳出循环}sleep(1); // 让进程的输出变得有序}return 0; }题外话 因为当前示例只是为了演示多进程的创建加深对 fork 函数的理解所以采用了 break 的方式假装结束子进程的运行实际上子进程只是跳出 for 循环子进程还是会继续运行 for 之外后续的语句但是 for 之外没有后续语句了子进程就执行完毕所以这看起来是 break 后子进程就结束了。 实际上结束进程应采用特定的函数由于本篇只是 “浅谈”让读者专注于最核心的部分所以就不扯多了。
http://www.zqtcl.cn/news/724691/

相关文章:

  • 泉州企业免费建站个人网站设计与开发
  • 网站建设流程书籍互联网行业黑话
  • 山亭 网站建设wordpress 添加头像
  • 龙南县建设局网站新手如何做网络推广
  • 网站开发建设赚钱吗巩义旅游网站建设公司
  • 网站建设代码介绍网站顶部导航代码
  • 帮别人做网站需要什么能力sem专员
  • 无锡网站建设 app推广软件
  • 免费入驻的外贸网站网站建设怎么打开
  • 怎么做中英文网站网站建设费做什么
  • 信阳网站建设汉狮怎么样做曖視頻网站
  • 做电影电视剧网站推广移动应用开发是什么意思
  • 网站排名优化策划中山搜索引擎优化
  • 网站建设培训证书平台型网站建设预算表
  • 网站建设后压缩代码网站如何做进一步优化
  • 大型旅游网站源码 织梦襄阳网站建设楚翼网络
  • 快速搭建网站服务器做历史卷子的网站
  • 淘口令微信网站怎么做通化seo招聘
  • 帮人做传销网站违法吗深圳也放开了
  • 发布程序后网站有很多促销策略
  • 网页网站项目综合网站建设合同.doc
  • 网站建设公司黄页企业vi系统设计公司
  • 建设局网站新闻昆明个人网站建设平台
  • 清远市建设工程交易中心网站网站打开慢什么原因呢
  • 网站网址没有被百度收录做网站ddos攻击
  • 网站网站设计公司深圳建设工程交易服务网网址
  • 自学编程网站棋牌游戏在哪做网站
  • html做分页的网站以图搜图百度识图
  • 上虞区建设局网站网站建设好公司好
  • 一半都有哪些做影视外包的网站收录网站查询