Javaで非同期メソッド呼び出しを実装する方法はありますか?スレッドとExecutor以外の方法はありますか? Executorによって実装されている場合、遅延が導入されますか?Javaで非同期メソッド呼び出しを実装する方法は?
答えて
を使用すると、Threads
は、Javaのやり方ではです。 Executors
は、より良いコンテナにスレッド管理をラップする単なる方法です。
が遅延を導入します。スレッドが別のタスクを処理するのに忙しい場合、遅延が発生します。さもなければ、遅れは、一般に非常に応答性の高いOSコンテキスト切り替えメカニズム(マルチコアアーキテクチャおよびハイパースレッディングまたは同様の技術に基づくアーキテクチャによって変化する可能性がある)に基づいている。
実行者に導入された遅延は、スレッドプールとワーカースレッドの可用性によって異なります。 – neo
@neo、絶対に –
DynamicProxy(コアJava機能)を使用して、呼び出し元と呼び出し先の間にレイヤを導入できます。プロキシでは、オブジェクトとして表されるメソッド呼び出しがあります。直ちに戻り、メソッドを別のスレッドで呼び出します。質問は、呼び出し元に値を返す方法が残っています。後で返す戻り値を持つ予定ですか?これは、コールバックメソッドを使用して解決できます。
いいえ、何も返さないでください。 – neo
コールバックを実装するクラスを渡すことができます。
new A(instanceOfB);
someMethodOfA() {
doSomething();
instanceOfB.callback();
}
メッセージング(JMS)を使用してそのような動作を実装することもできます。
また、Java EE6セッションBeanでは、@ Asynchronousを使用してメソッド呼び出しをAsyncに呼び出すことができます。
- 1. Javaスレッド内で非同期メソッドを呼び出す方法は?
- 2. 非同期メソッドから非同期メソッドを呼び出す方法
- 3. 非同期呼び出しを含むプロキシパターンを実装する方法は?
- 4. Task.Run内で非同期メソッドを呼び出す方法は?
- 5. メソッド呼び出しを非同期化する方法
- 6. 非同期メソッドで非同期呼び出しスタック
- 7. 別のメソッドから非同期メソッドを呼び出す方法
- 8. jersy postメソッドを非同期に呼び出す方法は?
- 9. 非同期メソッドを呼び出す方法は?
- 10. ASP.NET Webフォーム - 非同期的にWCF非同期メソッドを呼び出す方法
- 11. viewmodelで非同期メソッドを呼び出す方法
- 12. 非同期メソッド呼び出しのテスト
- 13. 非同期呼び出しを同期化する方法
- 14. 非同期コードから非同期メソッドを呼び出す
- 15. 非同期メソッドから同期メソッドを呼び出す
- 16. 非同期コールバックをサポートするメソッドへの呼び出しの抑制を実装する方法
- 17. 別の非同期 `each`メソッド(NodeJS)の内部で非同期メソッド呼び出しを行う方法は?
- 18. UIスレッドで同期メソッドを非同期で呼び出す
- 19. ElapsedEventHandler内から非同期メソッドを呼び出す方法
- 20. mockitoで非同期呼び出しをスタブする方法は?
- 21. 非同期Java Webサービス呼び出しの呼び出し
- 22. 非同期メソッド(Web呼び出しを行う)を非同期にラップする
- 23. 真に非同期メソッドを実装する方法は?
- 24. $ http非同期呼び出しをデバッグする方法は?
- 25. Microsoft.Azure.NotificationHub - 同期メソッドの非同期呼び出し
- 26. 非同期に同期メソッドを呼び出す
- 27. 非同期呼び出し
- 28. 同期呼び出し内での非同期タスクの実行
- 29. 非同期メソッドと同期メソッドを連続して呼び出します
- 30. Swift + iOS:非同期呼び出しからクロージャを呼び出す方法は?
追加するすべてのものが遅延を招きます。 –