Javaの呼び出しとコールバック概要(2)

Javaの呼び出しとコールバック概要(2)


コールのタイプ

呼び出しの3種類ありますが、通常のコール(同期呼び出し)、非同期呼び出し非同期のコールバックが

コール機能の三種類

通常の呼び出し:としても知られている同期呼び出し、最も一般的に呼ばれるが、閉塞を引き起こす可能性があります
IMG

非同期呼び出し:非同期呼び出し、問題の同期コールブロッキングを解決するためにしかし、結果を返しませんでした
IMG

非同期コールバック:非同期コールバックは、閉塞を解決するためにまた結果を返すことができます
IMG

強いと弱いから三人のプログレッシブ関係普通调用< 异步调用 < 异步回调:実際には3 2点のみ、1間の最も重要な違いこの呼び出しはメインスレッドをブロックの原因ではない、2:私たちが呼ぶとき、あなたが返すことができます結果の実装。普通の呼び出しは、閉塞が発生しますが、実装が完了した後、我々は実行時に、すぐに結果を得ることができます!しかし、タスク実行に多くの時間があるので、それは非常に長いので、我々は、メインスレッドをブロックすることは明らかですタスクは、主導非同期呼び出しが発生し、非同期呼び出しおよび同期呼び出し差は、ある同期呼び出しはブロックしていますが、実行結果を得ることができ、非同期呼び出しはブロックされませんが、この実行結果を知ることができない!ので、どのように解決するためにする必要はありませ既知の問題タスク実行結果?それは実行が終わった後、直接メインスレッドに通知し、メインスレッドに通知し、実行時に必要とされる、すなわち、オブジェクトクラスメインスレッドが配置されて使用することであり、その結果を示すフィールドを変更したりプロパティは、または外の世界を知っているようにメソッドを実行し、それは外の世界の実現の結果が学習されたことを意味します。

解決するためにどのように同期および非同期?

同期プロセスは、我々が線形を行うので、同時に実行するための1つのタスクのみが、そのようなタスクの実行が終わったように、排他的であるため、タスクのみ遮断することができるので、リニアが、実行、唯一の他のスレッドが存在しないため、メインスレッドをブロックします別のタスクを実行するために!
それを非同期?非同期ブロックせずに、それだけで一つのスレッドの限界を破ったので、非同期に、複数のスレッドを作成する複数のスレッド、内部その後のjavaを、作成する必要があるので、そうあなたは、非同期アップを達成することができます!
IMG

理解するためにどのようにコールバック?

同期または非同期呼び出しは、すべてのBは、単一の行を呼び出しますが、このような場合は呼び出しを、例えば、我々はAスレッドでBを呼び出すので、我々は作るために、Bの実装の結果を知っている、または作るために長い時間を待っていないことができるかどうか完了するために2つのタスクが。私たちは、むしろ片方向通話よりも、このような場合は、あなたが達成するためのインタフェースインタフェースにより、通常、我々は結果を知ることができ、コールバック方法は二つの側面を呼び出すことができ、双方向のコールを持っているだけでなく、クラスすることができ達成が、一般的にインタフェースすることによって達成される、我々は必要な指向のプログラミング・インタフェースを。


REF:
1. 理解するために読んでJavaのコールバック関数、、2. Javaインターフェース詳細なコールバックメカニズム、3 解決するためのJavaコールバックメカニズム、4 非同期呼び出しの理解、5 のJavaコールバックメカニズムの概要

おすすめ

転載: www.cnblogs.com/prayjourney/p/11421698.html