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函数,便可以获取进程的退出状态了。

  • 相关阅读:
    ionic文档
    Can't resolve all parameters for Storage: (?).
    cannot find module @ionicapp-scriptsinionic-app-scripts.js
    ionic 环境搭建
    学习文档记录
    js 文件引用传递参数
    No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
    js 去除左右空格
    sql 多行数据合并
    filter @Autowired nullPointer
  • 原文地址:https://www.cnblogs.com/lasnitch/p/12764148.html
Copyright © 2011-2022 走看看