C 可以用wait()代替sleep()或delay()吗?

C 可以用wait()代替sleep()或delay()吗?,c,multithreading,C,Multithreading,我的程序中有两个独立的线程,我想让一个线程说Thread1延迟5s,让另一个线程说Thread2可以完成。但它们不是相互分叉的,都是独立的子线程。我知道我可以使用delay或sleep,但我可以使用Thread1中的wait5000延迟5s吗?或者等待只能由父线程调用?Wait 从手册: pthread_join函数等待线程指定的线程 终止。如果该线程已经终止,那么 pthread_join立即返回。线程指定的线程 必须是可接合的 使用pthread函数族时,请记住编译并链接-pthread 你

我的程序中有两个独立的线程,我想让一个线程说Thread1延迟5s,让另一个线程说Thread2可以完成。但它们不是相互分叉的,都是独立的子线程。我知道我可以使用delay或sleep,但我可以使用Thread1中的wait5000延迟5s吗?或者等待只能由父线程调用?

Wait 从手册:

pthread_join函数等待线程指定的线程 终止。如果该线程已经终止,那么 pthread_join立即返回。线程指定的线程 必须是可接合的

使用pthread函数族时,请记住编译并链接-pthread

你的问题是:等待能代替睡眠还是延迟


回答:没有。

您是否阅读了wait的文档?供您参考:明确声明:正在等待5000。。。很可能会使应用程序崩溃。@alk Yes,同意。我在答案上加了这个。
#include <sys/types.h>
#include <sys/wait.h>

pid_t wait(int *status);
pid_t waitpid(pid_t pid, int *status, int options);
int waitid(idtype_t idtype, id_t id, siginfo_t *infop, int options);
int pthread_join(pthread_t thread, void **retval);