第12章 线程控制

  1. 线程控制
    1线程的优点:统一进程下的线程共享同一进程空间,所以节约资源,主要包括以下三面:

    创建块、系统调度线程间切换快、通信快

    2 创建线程:
      #include <pthread.h>
      int pthread_create(pthread_t  *thread, pthread_attr_t  *attr, void*  (*start_routine)(void *),void *arg);

      参数说明:
      thread : 该参数是一个指针,当线程创建成功时,用来返回创建的线程ID
      attr:该参数用于指定线程的属性,NULL表示使用默认属性
      start_routine:该参数为一个函数指针,指向线程创建后要调用的函数。这个被线程调用
                  的函数也称为线程函数。
      arg:该参数指向传递给线程函数的参数

      注意:线程创建成功时,pthread_create函数返回0,若不为0,则说明创建线程失败。

    3 创建线程其他系统函数
      pthread_t pthread_self(void)    获取本线程的线程ID
      int pthread_equal(pthread_t thread1,pthread_t thread2)  判断两个线程ID是否指向同一线程
      int pthread_once(pthread_once_t *once_control, void(* init_routine)(void))  用来保证init_routine线程函数在进程中仅执行一次

    4 线程终止
       #include <pthread.h>
           Void pthread_exit(void *retval)
     注意:如果从main函数返回或者调用了exit函数u退出主线程,则整个进场将终止,此时进程中所有线程也将终止。如果主线程调用pthread_exit函数,则仅仅是主线程消亡,别称不会结束,知道所有线程结束,进程才会结束

    5 等待线程结束
      #include <pthread.h>
      Int pthread_join(pthread_t th,void *thread_return);
     注意:一个线程仅能被一个线程等待

    6 私有数据
      #include <pthread.h>
      int pthread_key_create(pthread_key_t *key,void (*destr_function)(void *));
      int ptread_setspecific(pthread_key_t key,const void *pointer);
      void* pthread_getspecific(pthread_key_t key);
      int pthread_key_delete(pthread_key_t key);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值