2016-07-19 10 views

答えて

1

非同期モードで_spawnvを呼び出すと、プロセスハンドルが返されます。 _cwait(呼び出されたプロセスやスレッドを識別する擬似ハンドルでない場合は、指定されたハンドルを閉じます)を介して生成されたプロセスを待つことができるので、ハンドルは常に有効です。

プロセスが終了すると、そのカーネルオブジェクトは、ハンドルとポインタの参照がすべて削除されるまで存在します。その状態では、プロセスは実際にはアドレス空間を持たず、実行中のプロセスのリストにAFAIKがリストされていません(タスクマネージャでは表示されません)。

2

ハンドルが不要な場合は、ハンドルを閉じる必要があります。しかし、あなたが非常に多くのプロセスを産み出さない限り、そうしなければならないという結果はわずかです。カーネルはプロセスオブジェクトを保持する必要があります(これは、であり、おおよそです)。しかし、プロセスオブジェクトの数には一定の制限はなく、終了したプロセスは、カーネル。プロセスが終了すると、漏れたリソースは自動的にクリーンアップされます。

ハンドルの参照カウントについては、there's no such thing.ハンドルは参照カウントされません。

関連する問題