c/c++语言开发共享pthread_create()如何工作?

鉴于以下内容:

pthread_t thread; pthread_create(&thread, NULL, function, NULL); 

    pthread_create究竟对线程做了什么?

    thread是一个对象,它可以保存一个值来标识一个线程。 如果pthread_create成功,则填充一个标识新创建的线程的值。 如果失败,则调用后的thread值未定义。 (参考: http : //pubs.opengroup.org/onlinepubs/009695399/functions/pthread_create.html )

    线程加入主线程后终止会发生什么?

    对象没有任何反应,但它所持有的值不再引用任何线程(例如,您不能再将它传递给带有pthread_t函数,如果您不小心这样做,则可能会返回ESRCH错误)。

    如果在线程加入后执行此操作,会发生什么:

    与之前相同:如果pthread_create成功,则分配一个标识新创建的线程的值。

    pthread_create将使用OS调用创建一个线程。 抽象的精彩之处在于你并不需要关心下面发生的事情。 它将变量线程设置为可用于引用该线程的标识符。 例如,如果您有多个线程并且想要取消其中一个线程,则只需调用

    pthread_cancel可以(线程)

    使用正确的pthread_t标识符来指定您感兴趣的线程。

    线程加入主线程后终止会发生什么?

    在线程终止之前,var线程用作获取或识别线程的键/索引。 线程终止后,键/索引指向的值不再必须有效。 你可以保留它并尝试重用它,但这几乎肯定会导致错误。

    如果在线程加入后执行此操作,会发生什么:

     pthread_create(&thread, NULL, another_function, NULL); 

    没问题,因为你给它一个线程的引用,线程的值将被设置为刚刚创建的新线程的标识符。 我怀疑它可能和以前一样,但我不会指望它。

    需要了解更多c/c++开发分享pthread_create()如何工作?,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!

      以上就是c/c++开发分享pthread_create()如何工作?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/978923.html

      (0)
      上一篇 2021年12月12日
      下一篇 2021年12月12日

      精彩推荐