多核并行计算:C语言Pthreads线程库小记
在多核并行计算中,采用Pthreads进行共享内存编程,这篇笔记文章是对Pthreads库的小记。
对象
pthread_t
pthread_t对象是一个不透明对象,对象存储的数据由系统绑定,用户级代码无法直接访问,pthread_t对象可以对他所从属的对象进行唯一的标识。
方法
pthread_create
pthread_create用来生成线程,它的语法为:
int pthread_create(
pthread_t* thread_p /*out*/,
const pthread_attr_t* attr_p /*in*/,
void* (*start_routine)(void*) /*in*/,
void* arg_p /*in*/,
);
第一个参数是指向pthread_t对象的指针,必须在调用pthread_create函数前就为pthread_t对象分配好内存空间;第二个参数为线程的属性,一般不用;第三个参数为该线程需要运行的函数;最后一个是一个指针,指向传递给start_routine的参数。函数的返回值大多数表示线程调用中是否有错误。
pthread_join
pthread_join用来等待pthread_t相关联的那个线程结束。pthread_join函数的结构为:
int pthread_join(
pthread_t thread /*in*/,
void** ret_val_p /*out*/,
);
第二个参数可以接收任意由pthread_t对象所关联的那个线程产生的返回值。