在Linux中,pthread(POSIX线程)库允许你创建和管理线程
pthread_create()
函数创建一个新线程。这个函数需要一个指向pthread_t
类型变量的指针作为返回值,该变量将在成功创建线程时存储新线程的标识符。#include <pthread.h>
void *thread_function(void *arg);
int main() {
pthread_t thread_id;
int rc;
rc = pthread_create(&thread_id, NULL, thread_function, NULL);
if (rc != 0) {
// 处理错误
}
// 其他代码...
return 0;
}
pthread_join()
函数等待一个或多个线程完成。这个函数需要一个指向pthread_t
类型变量的指针作为参数,该变量表示要等待的线程的标识符。pthread_join()
函数将阻塞调用它的线程,直到被等待的线程结束。#include <pthread.h>
void *thread_function(void *arg);
int main() {
pthread_t thread_id;
int rc;
rc = pthread_create(&thread_id, NULL, thread_function, NULL);
if (rc != 0) {
// 处理错误
}
// 等待线程结束
pthread_join(thread_id, NULL);
// 其他代码...
return 0;
}
pthread_detach()
函数。这个函数需要一个指向pthread_t
类型变量的指针作为参数,该变量表示要分离的线程的标识符。调用pthread_detach()
后,被分离的线程将在完成其执行后立即结束,而不会影响主线程或其他线程。#include <pthread.h>
void *thread_function(void *arg);
int main() {
pthread_t thread_id;
int rc;
rc = pthread_create(&thread_id, NULL, thread_function, NULL);
if (rc != 0) {
// 处理错误
}
// 分离线程
pthread_detach(thread_id);
// 其他代码...
return 0;
}
总之,Linux中的pthread库允许你创建和管理线程,你可以根据需要选择等待线程结束、立即结束线程或让线程在完成后自动分离。