0

スレッドを実行する前に、最初にスレッドをスリープさせるにはどうすればよいですか?スリープを機能させる方法は知っていますが、プログラムを実行すると、スレッドはすぐに実行されます。実行を開始するために最初に作成されたら、待機させたいです。(私はハンドラーを使用しています)

4

2 に答える 2

1

スレッドがいつスケジュールされるかを制御することはできません。スリープ状態にしたい場合は、スレッドサブルーチンの最初のステートメントで条件などを待機させ、準備ができたらその条件にブロードキャストできます。擬似コードの場合:

get-lock
if (we-are-still-supposed-to-sleep)
  pthread_cond_wait()
release-lock

子を作成している間、親にロックを保持させることができると思います。そうすれば、子が行う必要があるのは次のとおりです。

get-lock
release-lock

条件のことは避けてください。

于 2011-05-24T23:12:28.317 に答える
0

どのOS?Windozeを使用すると、中断状態のスレッドを作成できます。ctorにスレッドフィールドをロードしたら、スレッドを再開できます。それができない場合は、新しいスレッドが待機するように、スレッド開始パラメーターにいくつかの同期オブジェクトを渡します。

Rgds、マーティン。

于 2011-05-25T00:03:10.267 に答える