zoukankan      html  css  js  c++  java
  • 关于对进程、线程的返回状态的获取的理解

    1、线程

    创建线程的函数并不会返回线程的状态,线程状态的返回需要借助一个函数,即pthread_exit函数。这个函数可以把在线程内部把线程的退出信息发送到主线程。

    而主线程需要用一段空间来存储这个子线程退出时候的状态,因此需要在主线程中提前定义一个变量 ,通过pthread_join函数,来接受到线程的退出状态。例如创建一个retval,使用这个变量来接受这个信息即可。

    但是这个变量的类型怎么确定呢?,pthread_join 函数的定义者将这个函数的参数设置成了一个二级指针,如下,

    int pthread_join(pthread_t thread, void **retval);
    

    因此在主线程中应该定义一个一级指针,即需要将retval 定义成一个一级指针,而将这个一级指针的地址传递给pthread_join函数,便可以获取线程的退出状态了。

    2、进程

    同理,创建进程的函数也不会返回线程的状态,线程状态的返回需要借助一个函数,即exit函数。这个函数可以把在线程内部把线程的退出信息发送到父进程。

    而主进程程需要用一段空间来存储这个子线程退出时候的状态,因此需要在主进程中提前定义一个变量 ,通过wait函数,来接受到线程的退出状态。例如创建一个val,使用这个变量来接受这个信息即可。

    但是这个变量的类型怎么确定呢? wait函数的定义者将这个函数的参数设置成了一个一级指针,如下,

    pid_t wait(int * status)
    

    因此在父进程中应该定义一个 int变量,即需要将val定义成int型变量,而将这个int变量的地址传递给wait函数,便可以获取进程的退出状态了。

  • 相关阅读:
    线性关系和相关系数
    CSS中的display:inlineblock
    SQL Server中常用的SQL语句
    Access SQL中Left Join、Right Join和Inner Join的使用
    PHP合并静态文件
    PHP中的include功能
    CSS背景图片居中的细节
    IIS Web服务扩展中添加ASP.NET4.0
    修改SQL server数据库中的逻辑文件名
    在SQL Server中,不使用“SQL 邮件”的情况下发送邮件
  • 原文地址:https://www.cnblogs.com/lasnitch/p/12764148.html
Copyright © 2011-2022 走看看