Linux 线程属性相关函数

pthread_attr_t就是对应线程的属性

bash 复制代码
/*
    #include <pthread.h>
    int pthread_attr_init(pthread_attr_t *attr);
        初始化线程属性变量
    int pthread_attr_destroy(pthread_attr_t *attr);
        释放线程属性资源
    int pthread_attr_getdetachstate(const pthread_attr_t *attr, int *detachstate);
        获取线程分离的状态属性
    int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate);
        设置线程分离的状态属性
*/

#include <stdio.h>
#include <pthread.h>
#include <string.h>
#include <unistd.h>

void* callback(void* arg) {
    printf("child thread id:%ld", pthread_self());
    return NULL;
}

int main() {

    //创建一个线程属性变量
    pthread_attr_t attr;
    //初始化
    pthread_attr_init(&attr);
    //设置属性
    pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
    //创建一个子线程
    pthread_t tid;
    int ret = pthread_create(&tid, &attr, callback, NULL);
    if(ret != 0) {
        char* strerr = strerror(ret);
        printf("error: %s\n", strerr);
    }

    printf("tid: %ld, main thread id:%ld\n", tid, pthread_self());

    size_t size;
    pthread_attr_getstacksize(&attr, &size);

    printf("%ld\n", size);
    pthread_attr_destroy(&attr);

    pthread_exit(NULL);

    return 0;
}
相关推荐
镜子AI12 小时前
镜子AI 技术复盘:三条自动化链路上的“停止条件“设计
运维·人工智能·自动化
tianyuanwo12 小时前
NetBox 数据库详解:当“关系型数据库”被装进一个网络运维的领域模型里
运维·数据库·netbox
HideF12 小时前
Linux sudo
linux
FlightYe13 小时前
视界原理之3D视频(四):裸眼、眼镜和头显
android·linux·c++·3d·ffmpeg·音视频
蹊黎14 小时前
Linux 下用 C 语言实现进度条
linux·c语言·单片机
知已难寻14 小时前
03 · OpenStack的计算管理 Nova
运维·服务器·开发语言·云原生·云计算·openstack·开源软件
huainingning15 小时前
Windows syslog日志服务器搭建与模拟器对接
运维·服务器·智能路由器
牛马鸡niumasi15 小时前
【Linux】C语言文件操作
linux
say_fall15 小时前
【Linux系统编程】Ext 文件系统:磁盘与存储、文件与目录、现代计算机究竟如何寻找文件
linux·运维·服务器·数据库·c++
wacsii16 小时前
【Linux进程(一)】Linux 进程初探:操作系统如何管理进程?fork() 为什么返回两次?
linux·运维·服务器