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

  • 相关阅读:
    html大文件传输技术
    html大文件传输实例解析
    html大文件传输示例
    ckeditor粘贴word图片自动上传功能
    ckeditor不能粘贴word的问题
    ckeditor不能粘贴word的问题如何解决
    vue-ckeditor-word粘贴
    vue中使用ckeditor,支持wps,word,网页粘贴
    富文本编辑器复制word
    富文本编辑器粘贴word
  • 原文地址:https://www.cnblogs.com/lasnitch/p/12764148.html
Copyright © 2011-2022 走看看