現在のスレッド設計に関する質問があります。現在のプロセスは新しいスレッドを生成し、終了条件までメインスレッドを継続します。プロセスは、すべてのスレッドが終了するまで待機してから終了します。私が抱えている問題は、新しいスレッドが生成されるたびに以前に生成されたスレッドが完了したかどうかを確認する必要があることです。単にキューを設定し、すべてのタスクを処理するスレッドを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. JPAエンティティの設計提案
- 2. MySQLデータベース設計の提案
- 3. Hbaseスキーマ設計の提案
- 4. MySQLのデータベース設計の提案
- 5. Railsモデルの設計:時間を提案して反対提案する
- 6. Python Console UIの提案
- 7. Spring Webサービスクライアントのアーキテクチャと設計の提案
- 8. データベースのアクセス制御リストのセキュリティ設計に関する提案?
- 9. ASP.Net + SQL Serverの設計/実装の提案
- 10. コンテンツオーガナイザを設計するための提案が必要
- 11. JSF、EJB 3.0を使用するアプリケーションの設計パターンを提案
- 12. MVCでパラメータを渡すための設計提案
- 13. Entity Frameworkのデータアクセス設計を提案する(ストアドプロシージャを少なく)
- 14. 教師、科目、等級データベースの設計提案
- 15. C#マルチスレッド設計の例
- 16. Pythonのアサート関数の提案
- 17. スレッドとデータベースの提案の提案
- 18. コメント/データベース設計に関する提案 - 倉庫在庫管理
- 19. コードタスクスケジューラの提案
- 20. ワークフローエンジンの提案
- 21. デプロイメントキットの提案
- 22. jsonの提案
- 23. サービスレイヤの提案
- 24. カレンダーアプリの提案
- 25. CMSの提案
- 26. スピードアップオートコンプリートの提案
- 27. クラスドキュメントの提案
- 28. メモリアロケータの提案
- 29. アンドロイドアプリケーションローカリゼーションの提案
- 30. REST APIのうまく設計されたPythonラッパーを提案できる人はいますか?
脇に:マルチスレッドCPythonアプリケーションの有効性に重大な影響を及ぼすグローバルインタープリタロック(GIL)について知っておくべきです –