現在のスレッド設計に関する質問があります。現在のプロセスは新しいスレッドを生成し、終了条件までメインスレッドを継続します。プロセスは、すべてのスレッドが終了するまで待機してから終了します。私が抱えている問題は、新しいスレッドが生成されるたびに以前に生成されたスレッドが完了したかどうかを確認する必要があることです。単にキューを設定し、すべてのタスクを処理するスレッドを1つだけ使用する必要がありますか?または、スレッドを生成することは可能ですか?以前のスレッドが完了したかどうかをチェックし、問題のスレッドが完了した後にのみそのタスクを処理しますか?あなたの助けPythonのマルチスレッド設計の提案
0
A
答えて
4
ため
感謝さておき最初の「メイン」スレッドからスレッドのすべてを順次実行するようになっている場合は、[はい、あなたはタスクキューと、単一のワーカースレッドを使用する必要があります。
Queue
は、この作業に役立ちます(待ち行列に入れられたすべてのタスクが完了するのを待つ必要がある場合は、メインスレッドが.join()
になります)。
0
Geventをご覧ください。
複数のGreenletオブジェクトをいくつか作成できます。
それぞれのニワトリはgreen threadです。
from gevent import monkey monkey.patch_all() import gevent from gevent import Greenlet class Task(Greenlet): def __init__(self, name): Greenlet.__init__(self) self.name = name def _run(self): print "Task %s: some task..." % self.name t1 = Task("task1") t2 = Task("task2") t1.start() t2.start() # here we are waiting all tasks gevent.joinall([t1,t2])
関連する問題
- 1. OpenMPマルチスレッドの提案
- 2. エンティティ設計提案
- 3. JPAエンティティの設計提案
- 4. Hbaseスキーマ設計の提案
- 5. MySQLデータベース設計の提案
- 6. マルチスレッドの代替提案
- 7. モーダルポップアップのレイアウト設計の提案
- 8. MySQLのデータベース設計の提案
- 9. Railsモデルの設計:時間を提案して反対提案する
- 10. ハーフプロキシの設定の提案
- 11. Pythonのデータ型の提案
- 12. Python Console UIの提案
- 13. python - 構文の提案 - シミュレーション
- 14. データベースのアクセス制御リストのセキュリティ設計に関する提案?
- 15. ASP.Net + SQL Serverの設計/実装の提案
- 16. Spring Webサービスクライアントのアーキテクチャと設計の提案
- 17. JSF、EJB 3.0を使用するアプリケーションの設計パターンを提案
- 18. コンテンツオーガナイザを設計するための提案が必要
- 19. Entity Frameworkのデータアクセス設計を提案する(ストアドプロシージャを少なく)
- 20. 教師、科目、等級データベースの設計提案
- 21. MVCでパラメータを渡すための設計提案
- 22. C#マルチスレッド設計の例
- 23. スレッドとデータベースの提案の提案
- 24. python IDE、コード提案、pycharm
- 25. python-flask htmlフォームヘルプ/提案
- 26. コメント/データベース設計に関する提案 - 倉庫在庫管理
- 27. Pythonのアサート関数の提案
- 28. Python URL Shortener Background Appの提案
- 29. カレンダーアプリの提案
- 30. コードタスクスケジューラの提案
脇に:マルチスレッドCPythonアプリケーションの有効性に重大な影響を及ぼすグローバルインタープリタロック(GIL)について知っておくべきです –