LinuxC 线程创建pthread_create() 获得线程返回值pthread_join() 线程撤销pthread_exit()等

内核级线程被内核调度、用户级线程被用户调度、混合式线程

创建pthread线程 pthread_create()

  • 成功返回thread所指位置并返回0,否则返回一个错误号
#include 

int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
                  void *(*start_routine) (void *), void *arg);
  • thread: 指向线程标识符的指针,为无符号长整形

    attr: 指向定义新线程特性结构的指针,默认NULL

    start_routine: 此线程只执行这一个函数

    arg: 传递给start_routine的参数


pthread_join()

  • 从原来的线程获得新线程的返回值。成功返回0,否则返回错误码
#include 

int pthread_join(pthread_t thread, void **retval);
  • thread是pthread_create获得的线程标识符。将thread的返回值存入retval所指位置

撤销线程

#include 

int pthread_cancel(pthread_t thread); //别的线程中被调用。很少使用,无法让线程清理自己资源机会
void pthread_exit(void *retval); //线程内被调用
  • 还可以用exit(),主函数return结束,信号(例SIGTERM)终止线程

你可能感兴趣的:(操作系统,多线程,操作系统,c语言)