web-dev-qa-db-ja.com

pthread sleep linux

Pthreadを使用して、複数のスレッドを持つプログラムを作成しています。

sleep()がプロセス(すべてのスレッド)の実行を停止させているのですか、それともsleepを呼び出しているスレッドだけですか?

21
Steveng

ただの糸。 sleep()のPOSIXドキュメント は次のように述べています:

sleep()関数は、呼び出しthreadの実行を一時停止させます...

使用法:sleep(10)は10秒間スリープします。

34
caf

これを試して、

#include <unistd.h>

usleep(microseconds);
7

通常は nanosleep を使用しますが、正常に動作します。 Nanosleepは、呼び出しスレッドの実行を中断します。一部のマニュアルページでは、スリープはプロセス全体を指しているため、私は同じ疑問を抱いていました。

5
CMorgan