在C++中,wait()
函数通常与线程同步相关,用于让当前线程暂停执行一段时间或者等待某个条件成立
- 包含头文件:
#include// 对于Unix/Linux系统 #include // 对于Windows系统
- 使用
wait()
函数:
- 在Unix/Linux系统中,可以使用
wait()
或waitpid()
函数来等待子进程结束。例如:
#include#include #include #include int main() { pid_t pid = fork(); if (pid == 0) { // 子进程 std::cout << "子进程运行中..." << std::endl; sleep(5); // 模拟子进程运行5秒 std::cout << "子进程结束。" << std::endl; } else if (pid > 0) { // 父进程 std::cout << "父进程等待子进程结束..." << std::endl; wait(NULL); // 等待子进程结束 std::cout << "子进程已结束。" << std::endl; } else { std::cerr << "创建子进程失败。" << std::endl; return 1; } return 0; }
- 在Windows系统中,可以使用
WaitForSingleObject()
或WaitForMultipleObjects()
函数来等待线程或事件对象。例如:
#include#include int main() { HANDLE hThread = CreateThread(NULL, 0, NULL, NULL, 0, NULL); // 创建一个新线程 if (hThread == NULL) { std::cerr << "创建线程失败。" << std::endl; return 1; } std::cout << "主线程等待子线程结束..." << std::endl; WaitForSingleObject(hThread, INFINITE); // 无限期等待子线程结束 std::cout << "子线程已结束。" << std::endl; CloseHandle(hThread); // 关闭线程句柄 return 0; }
请注意,这些示例仅用于演示wait()
函数的基本用法。在实际项目中,你可能需要根据具体需求使用更复杂的同步机制,如互斥锁(mutex)、条件变量(condition variable)等。