pthread_exit()的用法
时间: 2023-12-10 18:03:53 浏览: 75
pthread_exit()是一个函数,用于终止当前线程。它可以将一个值作为线程的返回值。
在使用pthread_exit()时,可以有两种情况:
1. 如果在线程函数中调用pthread_exit(),那么该线程将会立即终止,并将退出值传递给等待该线程结束的其他线程。
2. 如果在进程中调用pthread_exit(),那么所有线程都将被终止,并将退出值传递给等待线程结束的其他进程。
示例代码:
```
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
void *myThread(void *arg) {
int *result = malloc(sizeof(int));
*result = 42;
pthread_exit(result);
}
int main() {
pthread_t thread;
int *result;
pthread_create(&thread, NULL, myThread, NULL);
pthread_join(thread, (void **)&result);
printf("Thread returned %d\n", *result);
free(result);
return 0;
}
```
在这个例子中,我们创建了一个线程并让它返回一个指向整数42的指针。在主线程中,我们使用pthread_join()等待线程结束,并将返回值解析为一个整数。最后,我们释放返回值的内存并退出程序。
阅读全文