親スレッドがあります。要求をキューに入れ、子スレッドを初期化するのが仕事です。子スレッドは、Webサービスからデータを取得し、親スレッドにコールバックする必要があります。親スレッドはデータを処理し、別の子スレッドを開始します。問題は、コールバックメソッド内のすべてが親スレッドではなく子スレッドによって処理されることです。親スレッドでコールバックを処理する方法はありますか?言い換えれば、子スレッドはコールバックメソッドを処理せずに呼び出した直後に終了します。子スレッドからの親スレッドへのコールバック
2
A
答えて
2
あなたはそれのためのいくつかの設計が必要ですが、主なスレッドが何もしないで子が完了するのを待っている場合、私は子スレッドのポイントを見ません。一方、メインスレッドがさらなる着信要求を処理しなければならない場合、それは子スレッドからのコールバックを提供することもできません。あなたはそれを考え直さなければならないでしょう。 1つのアイデアは、あるスレッドが要求を収集してキューにプッシュすることです。子スレッドはイベントを同じキューにプッシュし、キューからのイベント(子スレッドからの要求と応答の両方)を処理する個別のスレッドが存在します。
このようなことがうまくいく場合は、是非ExecutorService
を使用してジョブのキューイングを処理してください。
0
Markoが言及しているように、ExecutorServiceにはFuture参照があり、親スレッドにジョブを実行した結果を返すことができます。
関連する問題
- 1. Android - アクティビティへのスレッドとコールバック
- 2. 子クラスから親クラスへのコールバック
- 3. 子スレッドからのウィンドウへの描画
- 4. 親スレッドから子スレッドを削除する方法 - C
- 5. 子スレッドは親が
- 6. ReentrantReadWriteLock親スレッドへの委任
- 7. Pythonの子スレッド内から親スレッドを強制終了できますか?
- 8. cppの親スレッドからのスレッドの一時停止と再開
- 9. 子スレッドからのAndroidブロードキャスト
- 10. アンドロイド:子アクティビティで親アクティビティから実行中のスレッドを使用
- 11. iOSスレッド - コールバックのベストプラクティス
- 12. スレッド終了コールバック
- 13. 親スレッド終了時に子スレッドが終了する
- 14. あるスレッドから他のスレッドへの値の取得
- 15. スレッド・サブプロセスから別のスレッド・サブプロセスへの入力を送信
- 16. Java:元のスレッドの文脈で、別のスレッドからコールバックを呼び出す
- 17. 子プロセスから親にコピーされたスレッド
- 18. 親スレッド内のChildThread
- 19. 別のスレッドからのメインスレッドビューへのアクセス
- 20. UIスレッドのコールバック用OPTIONALLYデザインパターン
- 21. 別スレッドからのapp_globalsへのアクセス
- 22. 子コンポーネントから親コンポーネントへデータを渡す - 反応 - コールバック関数
- 23. AndroidのUIスレッドと子スレッドの通信
- 24. タイムラインからスレッドへの変換
- 25. fork()からスレッドへの移動
- 26. マルチプロセッシングからスレッド化への移行
- 27. Javaのスレッド:古いスレッドにJavaスレッドへの新規の
- 28. どのスレッドが新しいスレッドを '親'と見なすか
- 29. スレッドIDスレッド名から
- 30. Androidスレッド:スレッドからのビューを参照
私は理解しているかどうかを確認するには: スレッド: メイン - > サービス - - キューが要求し、起動 - > プロセッサ - > ビューア - - のショーのデータ要求を(Webサービスからデータを取得)を扱うユーザーと対話を画面 私は非常に多くのスレッドを持っている必要がありますか簡単に行うことができますか? – user1137146
実際にGUIスレッドを持ち、長い操作(WS呼び出し)を非GUIスレッドにオフロードしたいのですか?それはあなたが探しているものですか? –
はい。私が知りたいのは、あるスレッドでWSからデータを正常に取得すると、データを表示するために新しいスレッドを作成する必要があるか、それを行うために親スレッドに呼び出すことができるということです。私はWSスレッドにデータの表示を処理させたくありません。 – user1137146