pthread_create的使用方法
时间: 2023-11-16 18:07:48 浏览: 44
pthread_create是一个POSIX线程库函数,用于创建一个新的线程。它的使用方法如下:
```c
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
```
其中,thread是指向线程标识符的指针,attr是指向线程属性的指针,start_routine是指向线程函数的指针,arg是传递给线程函数的参数。
在引用中,代码`int iRet = pthread_create( pthreadId + i, NULL, threadFunc, &i );`创建了一个新的线程,并将线程函数指针threadFunc作为参数传递给pthread_create函数。线程标识符存储在pthreadId数组中。
引用中的另一行代码`### No.0 pthread start exec; pthread id = 3087563664 !`表示线程已经开始执行,并且线程标识符为3087563664。
相关问题
pthread_create使用
pthread_create是C语言中的一个函数,用来创建新的线程。它的语法如下:
```
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
```
- thread: 返回新线程的标识符。
- attr: 线程属性,可以为NULL。
- start_routine: 线程入口函数,新线程开始执行的函数。
- arg: 传递给线程入口函数的参数。
示例代码:
```
#include <pthread.h>
#include <stdio.h>
void *my_thread(void *arg)
{
printf("Thread ID: %ld\n", pthread_self());
return NULL;
}
int main()
{
pthread_t thread;
int ret;
ret = pthread_create(&thread, NULL, my_thread, NULL);
if (ret != 0) {
printf("Failed to create thread.\n");
return -1;
}
printf("Thread ID: %ld\n", thread);
pthread_join(thread, NULL);
return 0;
}
```
可以看出 pthread_create 函数返回0成功, 其他值则为失败。
pthread_create 使用例子
好的,根据您的要求,以下是一个 pthread_create 的使用例子:
```
#include <pthread.h>
#include <stdio.h>
void *print_message_function(void *ptr) {
char *message;
message = (char *) ptr;
printf("%s \n", message);
}
int main() {
pthread_t thread1, thread2;
char *message1 = "Thread 1";
char *message2 = "Thread 2";
int thread1_id, thread2_id;
thread1_id = pthread_create(&thread1, NULL, print_message_function, (void *) message1);
thread2_id = pthread_create(&thread2, NULL, print_message_function, (void *) message2);
pthread_join(thread1, NULL);
pthread_join(thread2, NULL);
return 0;
}
```
使用 pthread_create 函数创建了两个线程,每个线程执行 print_message_function 函数并传递了不同的字符串参数。使用 pthread_join 函数等待线程执行完毕。