zoukankan      html  css  js  c++  java
  • linux第12天 线程

    今天主要学习了共享内存,信号量的封装,还有线程.

    POSIX线程库
    与线程有关的函数构成了一个完整的系列,绝大多数函数的名字都是以“pthread_”打头的
    要使用这些函数库,要通过引入头文<pthread.h>
    链接这些线程函数库时要使用编译器命令的“-lpthread”选项

    pthread_create函数
    功能:创建一个新的线程,在主线程里调用
    原型
    int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*), void *arg);
    参数
    thread:返回线程ID
    attr:设置线程的属性,attr为NULL表示使用默认属性
    start_routine:是个函数地址,线程启动后要执行的函数
    arg:传给线程启动函数的参数
    返回值:成功返回0;失败返回错误码,而不是设置全局变量errno

    pthread_exit函数
    功能:线程终止,在线程函数里调用,参数代表返回值,用于给主线程传数据,在线程函数里return也一样
    原型
    void pthread_exit(void *value_ptr);
    参数
    value_ptr:value_ptr不要指向一个局部变量, 。
    返回值:无返回值,跟进程一样,线程结束的时候无法返回到它的调用者(自身)

    pthread_join函数
    功能:等待线程结束,在主线程里调用
    原型
    int pthread_join(pthread_t thread, void **value_ptr);
    参数
    thread:线程ID
    value_ptr:它指向一个指针,后者指向线程的返回值

    void *p = NULL;

     pthread_join(tid, &p);这样调用

    返回值:成功返回0;失败返回错误码

    pthread_self函数
    功能:返回线程ID,在线程函数里调用
    原型
    pthread_t pthread_self(void);
    返回值:成功返回0

    pthread_cancel函数
    功能:取消一个执行中的线程
    原型
    int pthread_cancel(pthread_t thread);
    参数
    thread:线程ID
    返回值:成功返回0;失败返回错误码

    posix互斥锁api

    • 互斥锁机制主要包括下面的基本函数。
    • 互斥锁初始化:pthread_mutex_init()
    • 互斥锁上锁:pthread_mutex_lock()
    • 互斥锁判断上锁:pthread_mutex_trylock()
    • 互斥锁解锁:pthread_mutex_unlock()
    • 消除互斥锁:pthread_mutex_destroy()

    创建一个锁

    pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;

    pthread_mutex_init(&mutex );

    临界区,同时只有一个线程能在里面运行

    pthread_mutex_unlock(&mutex);

  • 相关阅读:
    Iis发布网站
    call和apply的用法和区别
    用脚手架搭建vue项目
    记录一键shell脚本清理MySQL碎片文件的脚本
    Tiny File Manager – 轻便PHP文件管理工具 WEB文件可视化管理文件
    Pure Highlightjs – WordPress站长必装轻便代码高亮插件
    6个实用方法有效确保WordPress网站数据安全
    WPOSS – WordPress阿里云对象存储OSS插件 网站图片分离加速
    WordPress安装WPCOS插件分离图片至腾讯云对象存储加速网站
    Autoptimize – WordPress压缩代码加速网站访问插件设置方法
  • 原文地址:https://www.cnblogs.com/c-slmax/p/5281301.html
Copyright © 2011-2022 走看看