問題タブ [python-multithreading]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
8 に答える
149617 参照

python - デーモンスレッドの説明

Pythonのドキュメント には、次のように書かれています。

スレッドは「デーモンスレッド」としてフラグを立てることができます。このフラグの重要性は、デーモンスレッドのみが残っているときにPythonプログラム全体が終了することです。初期値は作成スレッドから継承されます。

誰かがそれが何を意味するのかについてより明確な説明や、スレッドをどこに設定するかを示す実際的な例を持っていますdaemonicか?

私のためにそれを明確にしてください:それで、あなたがスレッドを設定しない唯一の状況はdaemonic、メインスレッドが終了した後もそれらを実行し続けたいときですか?

0 投票する
20 に答える
472857 参照

python - 関数呼び出しのタイムアウト

Python で関数を呼び出していますが、これが停止してスクリプトを強制的に再起動する可能性があることがわかっています。

関数を呼び出すにはどうすればよいですか、または関数を何にラップして、5 秒以上かかる場合にスクリプトが関数をキャンセルして別のことを行うようにしますか?

0 投票する
7 に答える
81907 参照

python - Queue.Queue と collections.deque の比較

複数のスレッドが物を入れることができ、複数のスレッドが読み取ることができるキューが必要です。

Python には少なくとも 2 つのキュー クラスと がQueue.Queueありcollections.deque、前者は後者を内部的に使用しているようです。どちらもドキュメントでスレッドセーフであると主張しています。

ただし、キューのドキュメントにも次のように記載されています。

collections.deque は、ロックを必要としない高速のアトミックな append() および popleft() 操作を備えた無制限キューの代替実装です。

私はよく理解していないと思います:これは、dequeが完全にスレッドセーフではないことを意味しますか?

もしそうなら、私は 2 つのクラスの違いを完全には理解していないかもしれません。Queue がブロッキング機能を追加していることがわかります。一方、インオペレーターのサポートなど、いくつかの deque 機能が失われます。

内部dequeオブジェクトに直接アクセスすることは、

x in Queue().deque

スレッドセーフ?

また、deque が既にスレッドセーフであるのに、なぜ Queue はその操作にミューテックスを使用するのですか?

0 投票する
8 に答える
284062 参照

python - PythonでスレッドIDを取得するにはどうすればよいですか?

マルチスレッドのPythonプログラムと、writeLog(message)タイムスタンプの後にメッセージを書き出すユーティリティ関数があります。残念ながら、結果のログファイルには、どのスレッドがどのメッセージを生成しているかが示されません。

writeLog()メッセージに何かを追加して、どのスレッドがメッセージを呼び出しているかを識別できるようにしたいと思います。明らかに、スレッドにこの情報を渡すようにすることもできますが、それはもっと多くの作業になります。私が使用できるものと同等のスレッドはありos.getpid()ますか?

0 投票する
13 に答える
95723 参照

python - スレッドからの戻り値

Pythonでタプルまたは選択した値を親に返すスレッドを取得するにはどうすればよいですか?

0 投票する
6 に答える
180152 参照

python - メインプログラムが終了したときにスレッドを終了するにはどうすればよいですか?

無限ループにスレッドがある場合、メインプログラムが終了したとき(たとえば、Ctrl+を押したときC)にスレッドを終了する方法はありますか?

0 投票する
21 に答える
1091071 参照

python - Python でスレッド化を使用するにはどうすればよいですか?

Python でのスレッド化を理解しようとしています。ドキュメントと例を見てきましたが、率直に言って、多くの例は過度に洗練されており、理解に苦しんでいます。

マルチスレッドのためにタスクが分割されていることをどのように明確に示しますか?

0 投票する
4 に答える
1140 参照

python - Python スクリプトでのスループットの向上

DNSBL からの数千のドメイン名のリストを Dig で処理し、URL と IP の CSV を作成しています。これは非常に時間のかかるプロセスであり、数時間かかる場合があります。サーバーの DNSBL は 15 分ごとに更新されます。サーバーの更新に対応するために、Python スクリプトのスループットを向上させる方法はありますか?

編集:要求に応じてスクリプト。

0 投票する
2 に答える
480 参照

python - このマルチスレッドの python スクリプトを「チャンク」に分割するにはどうすればよいですか?

urllib を使用して Siteadvisor から取得した結果に基づいて、100k のドメイン名を CSV に処理しています (最善の方法ではありません)。ただし、現在のスクリプトでは作成されるスレッドが多すぎて、Python でエラーが発生します。これらのエラーを防ぐために、このスクリプトを「チャンク」して、一度に X 個のドメイン (たとえば、10 ~ 20) を実行する方法はありますか? 前もって感謝します。

編集:andyortliebの提案に基づく新しいバージョン。

0 投票する
3 に答える
4371 参照

python - Python の新しいスレッドで COM オブジェクトを作成できないのはなぜですか?

Python の新しいスレッドで dll から COM オブジェクトを作成しようとしています。そのスレッドでメッセージ ポンプを実行できます。

これは私が得るエラートレースです:

何か案は?