父子进程同步

父子进程同步当一个进程结束时 产生一个终止状态字 然后系统和新发一个 SIGCHILD 信号通知父进程 因为子进程结束是异步与父进程的 故父进程结束之前 要同步等待子进程终止 这是系统通过调用 wait 或 waitpid 来实现的 当父进程通过调用 wait 或 waitpid 同步等待子进程结束时 可能有以下几种情况 如果子进程还未结束 父进程阻塞等待 如果子进程已经结束 其终止状态字 SIGCHIL

当一个进程结束时,产生一个终止状态字,然后系统和新发一个SIGCHILD信号通知父进程。因为子进程结束是异步与父进程的,故父进程结束之前,要同步等待子进程终止。这是系统通过调用wait或waitpid来实现的。

#include 
  
    #include 
   
     #include 
    
      #include 
     
       #include 
      
        int main() { int child; if((child = fork()) == 0) { printf("child PID is %d\n",getpid()); exit(0); } printf("child PID to return to parent is %d\n",child); wait(0); return 0; } 
       
      
     
    
  

父子进程同步

父子进程之间的同步之例

#include 
    
  
    
    
    
    
    
      #include 
     
       #include 
      
        #include 
       
         #include 
        
          int main() { int pid1; if(pid1 = fork()) { if(fork()) { printf("parents context\n"); printf("parent is waitting the child1 terminate\n"); wait(0); printf("parent is waitting the child2 terminate\n") wait(0); printf("parent terminate\n"); exit(0); } else printf("child2 context\n"); sleep(5); printf("child2 terminate\n"); exit(0); } else { if(pid1 == 0) { printf("child context\n"); sleep(10); printf("child terminate\n"); exit(0); } } return 0; } 
         
        
       
      
    

上述程序是父进程首先创建一个子进程,若成功,再创建另一个子进程,之后三个进程并发进行。究竟谁先运行,是随机的,下图是其中一个结果


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225665.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午8:49
下一篇 2026年3月17日 上午8:49


相关推荐

  • 专业函数绘图软件Origin

    专业函数绘图软件Origin首先:Origin软件已经是科研院所等单位的必备工作软件之一,之所以大家讨论得较少,有可能并不是其上手难度低,而是这些使用人群的学习理解能力要相对高一点吧;其次:Excel不垃圾,但在函数绘图方面,比起Origin差远了,用垃圾来形容并不过分,可以问问任何高校老师,他们还会使用Excel出图么?那简直是自己找死。当然Origin也只是在绘图方面比Excel厉害,其它的方面还是比Excel差

    2022年5月31日
    112
  • 校园智能安防监控解决方案

    校园智能安防监控解决方案目前,我国基本上还处于人防和物防的传统状态,技术防控处于起步阶段,尽管政府和校方不断加大人防和物防的投入并取得了一定的效果,但面对日益复杂多变的校园环境和社会因素,暴力犯罪、偷盗抢劫、意外事件时有发生,加之疫情防控常态化趋势,校园里仍旧存在诸多不可控的安全隐患。为更好的应对校园迫切的安全管控及疫情防控常态化需求,提升校园安全监控能力,是社会和校方迫不及待的需求。基于校园安全防控需求,拟在全市中小学和幼儿园中建立“平安校园”“智慧安防”系统,建设一套智能化、可视化、全方位的视频监控系统,并与公安系统实时联

    2022年6月28日
    31
  • threadlocal底层实现_什么是底层

    threadlocal底层实现_什么是底层ThreadLocal作用:提供线程内的局部变量,不同的线程之间不会相互干扰,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或组件之间一些公共变量传递的复杂性。package com.mupack;public class App{ private String content; public void setContent(String content) { this.content = content; } public Stri

    2022年8月9日
    7
  • 【技术类】不得不看的Landsat 8常用的波段组合形式

    【技术类】不得不看的Landsat 8常用的波段组合形式Landsat8hasbeenonlineforacoupleofmonthsnow,andtheimageslookincredible.WhileallofthebandsfrompreviousLandsatmissionsarestillincorporated,thereareacoupleofnewones,such

    2022年7月23日
    11
  • Wifi开坑

    Wifi开坑缘起:读书期间,大量接触通信基础,无线快速发展,目光关注点自然是高高的基站塔,以及小小的手机(这个信息社会浓缩操作系统、通信、开源和智能化(智能掌机)的结晶当然也不简单)。至于短距离通信里面的形形色色,眼花缭乱的Wifi、BLE(蓝牙)、Zigbee、体域网则是感知中盲区,异类。一直到博士后期到职业才隐隐感知到,天下大事必出于细的道理。云动:就如“小小”体域网(Bodyareanetwork)中除了通用的天线设计、收发、同步、多通道处理外还有特别关注的鲁棒性设计,如何高可靠无中断地始终获取无线信

    2022年7月21日
    16
  • HTML+CSS实现炫酷的登录界面「建议收藏」

    HTML+CSS实现炫酷的登录界面「建议收藏」谢谢大家的支持,您的一键三连是罡罡同学前进的最大动力!一键三连一键三连一键三连一键三连一键三连一键三连HTML+CSS实现炫酷的登录界面上效果图!鼠标点击用户名或密码,字体会向上滑动,调节大小并高亮。鼠标放到登录按钮上,按钮可以高亮!下面是HTML的代码:<!DOCTYPEhtml><htmllang=”zh-CN”> <head> <metacharset=”utf-8″/> <meta

    2022年5月4日
    178

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号