マルチスレッド アプリケーションでは、特定のスレッドの強制終了が必要になる場合があります。結合または切り離しによる正常な終了が理想的ですが、この記事では C 11 でスレッドを突然終了する方法について詳しく説明します。
スレッドの強制終了のオプション:
リソースへの影響:
オプション 1 および 2プロセス内リソース リークは発生しませんが、実行中のすべてのスレッドが無差別に終了します。
オプション3 は、ターゲット スレッドが終了プロセスに参加する必要があるため、リソース リークが発生する可能性があります。
制限事項:
C 11 には、スレッドを終了するための移植性のある非協力的なメカニズムがありません。他のスレッドに影響を与えることなく単一のスレッドを実行します。この欠如は、そのような機能に対する動機の欠如に起因します。
ネイティブ ハンドルの使用 (プラットフォーム固有):
Apple の OS などの特定のプラットフォームでは、native_handle が提供されます。 std::thread の () メンバー関数。これを使用すると、スレッド管理のための OS 依存の機能にアクセスでき、強制終了が可能になる可能性があります。ただし、このアプローチではリソース リークが発生する可能性があります。
以上が協力せずに C 11 の単一スレッドを強制的に終了するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。