• pthread 常用 API 创建 销毁 调度 互斥锁 自旋锁 读写锁 条件变量


    pthread 常用 API

    • 线程创建,销毁,属性,同步,调度等常用 API。
    • 头文件:pthread.h

    线程属性

    • 结构体 pthread_attr_t,用于设置和获取线程的属性。
    • pthread_attr_init:初始化线程属性对象。在使用线程属性对象之前,必须先调用该函数进行初始化。
    • pthread_attr_destroy:销毁线程属性对象。当不再需要使用线程属性对象时,应该调用该函数进行销毁。

    线程堆栈大小

    • pthread_attr_setstacksize:设置线程的堆栈大小。
    • pthread_attr_getstacksize:获取线程的堆栈大小。

    线程调度

    • pthread_attr_setschedpolicy:设置线程的调度策略。
    • pthread_attr_setschedparam:设置线程的优先级。
    • pthread_attr_setinheritsched:设置线程是否继承父线程的调度属性。
    • pthread_setschedparam:设置线程的调度策略以及优先级。
    • pthread_setschedprio:设置线程的优先级。

    线程 CPU 亲和性

    • pthread_attr_setaffinity_np:设置线程 CPU 亲和性。
    • pthread_setaffinity_np:设置线程 CPU 亲和性。

    线程名

    • pthread_setname_np: 设置线程名。

    获取当前线程标识符

    • pthead_self:获取当前线程描述符。

    线程创建以及销毁

    • pthread_create:创建新线程。
    • pthread_join 等待线程结束并回收资源。
    • pthread_detach:将线程设置为分离状态,使其结束后自动释放资源。
    • pthread_cancel:取消线程。
    • pthread_exit:终止当前线程。

    线程互斥锁

    • pthread_mutex_init:初始化互斥锁。
    • pthread_mutex_destroy:销毁互斥锁。
    • pthread_mutex_lock:加锁。
    • pthread_mutex_unlock:解锁。

    线程自旋锁

    • pthread_spin_init:初始化自旋锁。
    • pthread_spin_destroy:销毁自旋锁。
    • pthread_spin_lock:加锁。
    • pthread_spin_unlock:解锁。

    线程读写锁

    • pthread_rwlock_init:初始化读写锁。
    • pthread_rwlock_destroy:销毁读写锁。
    • pthread_rwlock_rdlock:加读锁。
    • pthread_rwlock_rwlock:加写锁。
    • pthread_rwlock_unlock:解锁。

    线程条件变量

    • pthread_cond_init:初始化条件变量。
    • pthread_cond_destroy:销毁条件变量。
    • pthread_cond_wait:等待条件变量。
    • pthread_cond_timedwait:在指定时间内等待条件变量。
    • pthread_cond_signal:唤醒等待条件变量的线程。
    • pthread_cond_broadcast:广播唤醒等待条件变量的线程。
  • 相关阅读:
    Java游戏制作——王者荣耀
    Mybatis多对一,一对多查询模式
    springboot+vue+Elementui家族宗族信息门户网
    docker搭建etcd集群
    抖音矩阵系统,抖音矩阵系统,抖音矩阵系统,抖音矩阵系统,抖音矩阵系统,抖音矩阵系统,抖音矩阵系统,抖音矩阵系统。
    PT@古典概型@等概率模型
    Redis 哨兵机制
    php+sql后台实现从主表迁出至副表(数据超万条)
    Element Plus与Ant Design Vue:选型对比
    如何保障亚马逊多账户的安全,防止关联?
  • 原文地址:https://blog.csdn.net/luohaha66/article/details/134056262