Loading article…
非同期プロシージャコール(APC)は、コンピュータにおける作業単位の一つです。
プロシージャ呼び出しは、同期または非同期で行うことができます。同期プロシージャ呼び出しは、一連のスレッドで1つのスレッドで行われ、各呼び出しは前の呼び出しが完了するのを待ちます。一方、APCは、前の呼び出しが完了するのを待たずに行われます。
例えば、データがまだ準備できていない場合(例えば、プログラムがユーザーの応答を待っている場合)、スレッド上の他のアクティビティを停止するのはコストがかかり、スレッドはメモリやその他のリソースを消費してしまう可能性があります。
APCは通常、少量のメモリを持つオブジェクトとして形成され、このオブジェクトは待機間隔を処理するサービスに渡され、適切なイベント(例えば、ユーザー入力)が発生したときにアクティブ化されます。
APCのライフサイクルは2つの段階から構成されます。1つは受動段階で、入力データを受動的に待機します。もう1つは能動状態で、通常のプロシージャ呼び出しと同じ方法でデータが計算されます。
再利用可能な非同期プロシージャはアクターと呼ばれます。アクターモデルでは、入力を受け取るためのポートと、入力を処理するための(非表示の)ポートの2つが使用されます。データフロープログラミングでは、多くのポートが使用され、すべての入力が揃った時点で実行サービスに渡されます。
Windowsでは、APC は特定のスレッドのコンテキストで非同期に実行される関数です。[ 1 ] APC はシステム (カーネルモード APC) またはアプリケーション (ユーザーモード APC) によって生成できます。[ 1 ]