1

LinuxでphtreadsとCを使用してアプリケーションを作成しています。main関数は、一連のスレッド(最大20)を開始します。次に、ある基準の下で、すべてのスレッドを一度に停止する必要があります。各スレッドは、次のような条件付きループの下で実行されています。

while (state) {....}

したがって、スレッドごとに状態をfalseに変更する必要があります(現時点では、スレッドごとに1つの状態で十分だと思いますが、将来的には、スレッドごとに個別に停止する必要があります)

それで、それを行うための最良の方法は何ですか?ある状態をグローバル変数として使用し、それにミューテックスを使用することができます。その値を読み取るために、ロック、読み取り、ロック解除する必要があるたびに。そして、それはちょっと時間のかかる手順だと思います。それを実装する方法について他に何かアイデアはありますか?

4

1 に答える 1

1

# 男 pthread_cancel

スレッドにキャンセル要求を送信できます。

# man pthread_cleanup_push

キャンセルルーチンを設定できます。

于 2012-08-03T06:34:45.497 に答える