c语言有多线程时,主线程需要延时一会,怎么在延时的同时执行子线程
时间: 2024-09-27 09:04:01 浏览: 54
在 C 语言中,如果你想要在主线程等待一段时间的同时启动一个新的子线程,可以使用 `pthread_create` 函数创建子线程,并使用 `sleep` 或者 `usleep` 函数让主线程暂停。下面是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
// 子线程函数
void* child_thread(void *arg) {
printf("Child thread is running.\n");
// 这里你可以添加你的任务代码
pthread_exit(NULL);
}
int main() {
pthread_t child_thread_id; // 存储子线程ID
// 创建子线程
if (pthread_create(&child_thread_id, NULL, child_thread, NULL)) {
perror("Error creating thread");
exit(1);
}
// 主线程等待一段时间
sleep(5); // 休眠5秒,你可以替换为更具体的延迟时间,如 usleep(5000000)
printf("Main thread resuming after delay.\n");
// 等待子线程结束
pthread_join(child_thread_id, NULL);
printf("Child thread finished.\n");
return 0;
}
```
在这个例子中,主线程先创建了一个子线程并立即返回。然后主线程通过 `sleep` 函数暂停5秒。最后,主线程调用 `pthread_join` 来等待子线程执行完毕。
阅读全文