シグナルプログラミングとは何ですか?

「信号プログラミング」とは、主に状態の何らかの変更またはユーザー入力によって生成されたシグナルまたはイベントに応じて機能するコンピュータープログラムを参照するためによく使用される用語です。周辺のデバイスからオペレーティングシステム自体まで、コンピューターシステムのほぼすべての部分は、アプリケーションによってキャプチャして処理できる信号を生成できます。多くの形式では、シグナルプログラミングはイベント駆動型プログラミングに似ています。シグナルプログラミングの最も一般的な用途の一部は、特定のシステム信号をキャプチャおよび処理するユーザー入力、ネットワーク通信、および低レベルのプログラムに応答するグラフィカルユーザーインターフェイスを使用しています。最も広い用語では、一部の状態またはデータが変更されたことを示す指標であり、変更に関する追加情報が付随する場合があります。発生した。信号は、キーが押されたときに、垂直リトレースが発生したときのモニターなどのハードウェアから、またはメモリの割り当て中にページ障害などが発生した場合でもオペレーティングシステムからでさえ、ユーザーが生成できます。

アプリケーション内では、シグナルプログラミングはいくつかのタイプのアーキテクチャを引き受けることができますが、最も一般的なものの1つはリスナーまたはオブザーバーモデルです。この方法では、ユーザー定義のコードを何らかの方法で信号ハンドラーに渡すことができます。通常はオペレーティングシステム内で、そのコードを呼び出して、関数が求めているものに一致する信号を処理します。関数が処理できる信号のタイプは、多くの場合、信号マスクとして知られる変数によって決定されるため、一部の信号は、それらを処理するように設計されていないルーチンに渡されません。

2番目のシグナルプログラミングには、着信SIGを受け入れるキューを実装するプログラムが含まれます。ナル。このキューは、プログラムのメイン実行ループで投票され、プログラムは信号がキューに入ると反応します。その後、各信号は、論理的にソートされたり、処理されたり、無視されたり、別のプロセスに渡されたりできます。

同時プロセスまたはマルチスレッドアプリケーションが使用される場合、信号プログラミングではいくつかの困難が生じる可能性があります。たとえば、2つの別々のスレッドが2つの個別のユーザー入力デバイスによって生成された信号を聞いている場合、または2つのネットワークソケットから合併症が発生する可能性があります。 2人のユーザーが同時に一部のデータを変更しようとすると、プログラムデータは同期から脱落し、各ユーザーとは異なるように表示される可能性があります。線形キューを使用するか、スレッドの同期方法を実装すると、この状況を防ぐのに役立ちます。

他の言語

この記事は参考になりましたか? フィードバックをお寄せいただきありがとうございます フィードバックをお寄せいただきありがとうございます

どのように我々は助けることができます? どのように我々は助けることができます?