「ハンドル」は「オブジェクト/リソース、つまり特定のターゲットを操作する」ために使用されます。では、「ハンドル」とは正確には何を意味しますか?
「ハンドル」は「オブジェクト/リソース、つまり特定のターゲットを操作する」ために使用されます。では、「ハンドル」とは正確には何を意味しますか?
オブジェクトはあなたのオブジェクトのようなもので、ハンドルはあなたのオブジェクトの携帯電話番号のようなものです。オブジェクトがどこにあるのか、何をしているのかを常に気にする必要はありません。いつでも呼び出すだけで見つけることができます。リリースするときにも電話することができます。
句柄
英文单词为handle
。
Handle はコールバック関数です。
句柄
(handle)在语义上可以理解为把手
。このハンドルを使用してリソースを取得します。ハンドルを引くことはリソースを保持することに相当し、ハンドルを操作することは手がかりに従ってリソースを操作することに相当します。例:
英語にはlove handle
という言葉もあり、これはお腹の周りにあるつまむことができる小さな脂肪の輪を指します。直訳すると「愛のハンドル」と理解できます
チャンネルと同様、特定の状態を維持するオブジェクト。
一部のリソースはその性質上、直接操作できないため、ハンドルを介して操作する必要があります。
例:
データベースの操作にはIDが必要なので、データベースにログインした後のハンドルには、データベースを操作するためのID情報が含まれます
ファイルの読み取りと書き込みには、ファイル ポインターの位置を制御する必要があります。ハンドルはステートフル チャネルを提供します。
タイマーは状態です。何かがトリガーされると、ハンドルは処理(タイマーのキャンセル、事前のトリガー)などを行うことができます。
アプリケーションはオブジェクト (データ ファイル、カスタム データ構造など) に対して何らかの操作を実行する必要があることがよくありますが、プログラムの開始後、ハンドルは単にこれらのオブジェクトへのポインターとして理解され、メモリ内にあるこれらのオブジェクトは静的ではありません。一方で、プロセッサのスケジューリングやその他の理由により、現在のほとんどのオペレーティング システムは仮想メモリ空間に基づいており、この場合、メモリ マネージャーは、現在の実行要件を満たすためにオブジェクトを前後に移動させることがよくあります。はい、固定メモリ アドレスを指すポインタだけに依存する場合、明らかに実際のメモリの変化に対処する方法がありません。したがって、ハンドルはポインタへのポインタであると言えます。 、それ自体はオブジェクトを直接指していませんが、これを使用してメモリ内のオブジェクトの変更を学習し、間接的にオブジェクトを取得できます
言い換えると、メモリ内の実際のオブジェクトのアドレスは通常固定されておらず、固定ハンドルはメモリ内の対応するオブジェクトの位置を記述します
C言語には構造体へのポインタがあります