研究pthread_createt函数的用法。
时间: 2023-07-26 12:29:29 浏览: 91
pthread_create函数是用来创建一个新的线程的,它的原型为:
```
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*), void *arg);
```
其中,thread是指向pthread_t类型的指针,用于返回创建的线程ID;attr是指向pthread_attr_t类型的指针,用于设置线程的属性,一般可以传入NULL使用默认属性;start_routine是指向线程函数的指针,该函数必须返回void*类型,并且接受一个void*类型的参数,即线程函数的参数;arg是传递给线程函数的参数。
该函数执行成功时返回0,否则返回一个非零错误码。
下面是一个简单的示例:
```
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *thread_func(void *arg)
{
int i;
for (i = 0; i < 10; i++) {
printf("Thread: %d\n", i);
sleep(1);
}
return NULL;
}
int main(int argc, char *argv[])
{
pthread_t thread;
int ret;
ret = pthread_create(&thread, NULL, thread_func, NULL);
if (ret != 0) {
printf("Failed to create thread: %d\n", ret);
exit(EXIT_FAILURE);
}
pthread_join(thread, NULL);
return 0;
}
```
该示例中创建了一个新的线程,然后等待该线程执行完毕,最后退出程序。线程函数thread_func会输出10次"Thread: X",每次间隔1秒。
阅读全文