私はGUIといくつかのボタンで構成された小さなアプリケーションを書いています。ユーザーがそれらの1つをクリックすると、プログラムはウェブページをダウンロードし、いくつかのマッチングを行い、guiに値を返す必要があります。 問題は、ユーザーがそのボタンをクリックするたびに新しいスレッドを開始するか、小さなタスク(主にWebからコンテンツをダウンロードする)のためのスレッドの代替手段があるかどうかです。GUIをフリーズせずに小さなタスクのためのスレッドの代わりに
1
A
答えて
3
常に別のスレッドを使用する必要があります。今、これらの異なるスレッドをどのように使用するかは、あなた次第です。 producer/consumer
メソッドを見てください。バックグラウンドに待機しているスレッドだけが待ち行列に入れられます。これはあなたの仕事によく合うようです。可能であれば、SwingWorker
も使用する必要があります。これは、多くのGUIの更新と更新に役立つからです。最後に、java.concurrency
パッケージを見ると、非常に便利です。今では、あなたのためにすべてのロックとスレッドを行うライブラリを使用せずに手動でスレッドを開始する理由はないと思います。
0
この呼び出しを非同期にしたい場合は、代替手段はありません。
しかし、ダウンロードが完了して処理されるまで待つことができれば、スレッドは必要ありません。
関連する問題
- 1. XULの代わりにシンプルなC++ GUI?
- 2. スレッドの代わりに。タイマー?
- 3. matplotlib GUIスレッドがフリーズするのを止めるには?
- 4. スレッドを1つずつ実行する(パラレルの代わりに)
- 5. VBScriptの代わりにスケジュールされたタスクを実行する
- 6. GUIエディタの代わりにNetbeans.form
- 7. Javaのwait()とnotify()をフリーズせずに使用するSwing GUI
- 8. 小さなウェブサイト - SSLの代わりにopenID?
- 9. GUIの横のタスクをスレッドするPyQT4
- 10. GUIをフリーズせずにAudioQueueを再生する方法は?
- 11. Java String.splitの代わりにパフォーマンスを向上させるために
- 12. 小さなMCEに代わる
- 13. パフォーマンスを向上させるためのforループの代わりに
- 14. pythonに2.7の代わりに2.7の代わりにインストールされたモジュール
- 15. Pythonシェルの代わりにGuiに文字を表示する
- 16. ポリラインのデフォルトのマーカーアイコンの代わりに小さな円のアイコンマーカーを使用
- 17. Androidの背景タスクがUIスレッドをフリーズさせる - Firebaseを更新する
- 18. tkinterボタンGUIをフリーズするのを防ぐためにスレッドを開始するには
- 19. Bokehのデータツールチップにデータが表示されず、 '???'代わりに
- 20. スレッド名をログに表示する代わりにスレッド名を
- 21. C#XAML GUIがAPI関数のためにフリーズする
- 22. NetBeansのGUIデザインツール(マティス)は、Java 5の代わりに、Java 6の
- 23. 大きな+小さなファイルストレージ(kubernetes上)のglusterfs + mongodbの代わりに?
- 24. スレッド内で寝る代わりに
- 25. ゆっくりとシリアル接続がQT GUIスレッドをフリーズ
- 26. APPをフリーズせずにそのスレッドからスレッドを待つ方法はありますか?
- 27. Akkaの代わりにタスクを順番に処理する
- 28. バッファサイジングのためにstd :: maxの代わりにbitwiseを使う
- 29. WPFのようにマルチバインディングのためのUWPの代わりに?
- 30. iPhoneのNSXMLDocumentの代わりにXSLTの目的のために
ボタンを押すたびに別のスレッドが必要ですか、キューを持つスレッドを使用してこれらのイベントをすべて管理できますか? –