侧边栏壁纸
博主头像
noerror

虚灵不寐,众理具而万事出。

  • 累计撰写 239 篇文章
  • 累计创建 9 个标签
  • 累计收到 2 条评论
标签搜索

目 录CONTENT

文章目录

pthread_detach函数用法详解

noerror
2022-10-04 / 0 评论 / 0 点赞 / 43 阅读 / 480 字 / 正在检测是否收录...

pthread_detach函数用法详解

pthread_detach函数简介

  • 头文件包含
#include <pthread.h>
  • 函数定义
int pthread_detach(pthread_t  thread );
  • 编译链接选项
-pthread

pthread_detach函数常见使用错误

  • 链接错误
    undefined reference to `pthread_detach'
    解决办法:添加链接选项
-pthread
  • 编译错误
    warning: implicit declaration of function ‘pthread_detach’ [-Wimplicit-function-declaration]
    解决办法:包含头文件
#include <pthread.h>

pthread_detach函数详细描述

pthread_detach ()函数将thread标识的线程标记为分离线程。当一个分离的线程终止时,它的资源会自动释放回系统,而不需要另一个线程与终止的线程连接。
试图分离已分离的线程会导致未指定的行为。

pthread_detach函数返回值

成功时,pthread_detach ()返回0;出错时,它返回一个错误号。

pthread_detach函数错误码

  • EINVAL thread不是可接合线程。
  • 找不到ID为thread的线程。

pthread_detach函数其他说明

一旦线程被分离,它就不能与pthread_join (3)连接,也不能再次成为可连接的线程。
使用pthread_attr_setdetachstate (3)设置pthread_create (3)的attr参数的分离属性,可以在分离状态下创建新线程
分离的属性仅决定线程终止时系统的行为;如果进程使用exit (3)终止(或者等效地,如果主线程返回),它并不阻止线程终止。
应该为应用程序创建的每个线程调用pthread_join (3)或pthread_detach (),以便为该线程释放系统资源。(但是请注意,当进程终止时,没有执行这些操作之一的任何线程的资源都将被释放。)

pthread_detach函数使用举例

下面的语句分离调用线程:
pthread_detach(pthread_self());

0

评论区