pthread睡眠linux

Ste*_*eng 21 c++ multithreading pthreads

我正在使用pthreads创建一个包含多个线程的程序.

sleep()导致进程(所有线程)停止执行还是只是我调用的线程sleep

caf*_*caf 34

只是线程.sleep()POSIX文档说:

sleep()函数将导致调用线程被暂停执行...

用法:sleep(10)睡10秒.

  • @ user48956:由于历史原因,手册页经常使用"进程",其中行为现在适用于"线程" - 这是你所引用的`sleep(3)`手册页中的情况.我建议向Ubuntu提交有关文档的错误. (9认同)
  • 这就是"man 3 sleep"所说的:"sleep()使调用进程一直睡到几秒钟......"(Ubuntu 10).该函数在unistd.h中.这个文档是错误的还是有第二个睡眠功能? (4认同)

Cha*_*ara 7

试试这个,

#include <unistd.h>

usleep(microseconds);
Run Code Online (Sandbox Code Playgroud)

  • 请注意,usleep()已过时,并且已从POSIX.1-2008中删除。如果需要更高的分辨率,则应使用sleep()或nanosleep()。 (2认同)

CMo*_*gan 5

我通常使用nanosleep,它工作正常.Nanosleep取决于调用线程的执行.我有同样的疑问,因为在某些手册页中,睡眠指的是整个过程.