pthread_detach 如何用
时间: 2024-03-19 10:17:42 浏览: 59
pthreads基本用法
pthread_detach() 函数用于将线程标记为可分离状态,以便在线程终止时自动释放其资源,而不必等待其他线程调用 pthread_join() 函数来回收该线程的资源。
以下是一个示例代码,演示如何使用 pthread_detach() 函数:
```c
#include <pthread.h>
#include <stdio.h>
#include <unistd.h>
void *thread_function(void *arg)
{
printf("Thread function is running.\n");
sleep(3);
printf("Thread function is exiting.\n");
pthread_exit(NULL);
}
int main()
{
pthread_t thread_id;
int result;
result = pthread_create(&thread_id, NULL, thread_function, NULL);
if (result != 0) {
perror("Thread creation failed.");
return 1;
}
result = pthread_detach(thread_id);
if (result != 0) {
perror("Thread detach failed.");
return 1;
}
printf("Main thread is running.\n");
sleep(5);
printf("Main thread is exiting.\n");
return 0;
}
```
在上面的示例中,我们创建了一个新线程并将其标记为可分离状态。然后,主线程继续运行,等待一段时间后退出。在这段时间内,新线程也在运行并最终退出。由于该线程已被标记为可分离状态,因此它的资源将自动被释放。
请注意,已分离的线程不能被重新加入,因此您必须确保在线程标记为可分离状态之前,已经决定不再与该线程进行交互。
阅读全文