問題タブ [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 投票する
6 に答える
42641 参照

python - スレッドモジュールを使用してスレッドを一時停止および再開するにはどうすればよいですか?

スレッドで実行するようにスケジュールした長いプロセスがあります。そうしないと、wxpythonアプリケーションのUIがフリーズするためです。

私が使用しているもの:

スレッドを開始すると機能しますが、スレッドを一時停止して再開する方法がわかりません。上記のメソッドについてPythonのドキュメントを調べましたが、見つかりませんでした。

誰かが私がこれを行う方法を提案できますか?

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

python - sqlite3パッケージを使用してPythonの異なるスレッド間で:memory:データベースを共有する

Python で :memory: データベースを作成し、別のスレッドからアクセスしたいと考えています。基本的に次のようなものです:

すべての接続が同じデータベースを参照しています。

connect 関数に渡しcheck_same_thread=Trueてスレッド間で接続を共有することは承知していますが、可能であればそれを避けたいと考えています。助けてくれてありがとう。

編集:タイプミスを修正しました。私はもともと、「すべての接続が同じスレッドを参照している」と言って、スレッドをデータベースに置き換えました。

0 投票する
1 に答える
394 参照

python - 最後のステートメントが遅い場合を除き、Python関数は戻りません

私はthreading.Thread、通常の動作とは対照的に、メソッドが呼び出されたオブジェクトによって表されるスレッドでメソッドを呼び出して実行できるようにするサブクラスに取り組んでいます。これを行うには、メソッドへの呼び出しを a に配置するターゲット メソッドでデコレータをcollections.deque使用し、メソッドを使用しrunて両端キューを処理します。

このrunメソッドは、while not self.__stop:ステートメントとthreading.Conditionオブジェクトを使用して、呼び出しが両端キューに配置されるのを待ってから、 を呼び出しますself.__process_calls。ループのelse部分は、への最後の呼び出しを行います。の場合、別のスレッドから「呼び出し可能な」メソッドのいずれかを呼び出そうとすると、例外が発生します。while__process_callsself.__stop

問題は、最後のステートメントがデバッグ中に発見し__process_callsたものでない限り、返されないことです。print私はa = 1明示的に試しましreturnたが、どちらも機能しません。printただし、関数の最後のステートメントとして任意のステートメントを使用すると、戻り、スレッドはハングしません。何が起こっているのですか?

編集:David Zaslavskyによって、印刷には時間がかかるため機能することが指摘され、私はそれを確認しました

コードは少し長いですが、上記の説明が理解に役立つほど明確であることを願っています。

0 投票する
1 に答える
220 参照

python - 共有リソースがない場合、スタックした Python スレッドは他のスレッドを妨げる可能性がありますか?

Python を使用して、LAN (Windows 上) へのアクセスや HTTP 要求の作成などを実行するさまざまな dll を呼び出すことを検討しています。これらの dll は適切に記述されておらず、動かなくなる可能性があります。私の最初の質問は、Python スレッドでこれらの dll 呼び出しを分離することで、メインの Python スレッドが停止しないことが保証されるかどうかです。2 つ目の質問は、DLL が無限ループに陥った場合に Python がスレッドを強制終了できるかどうかです。

独自のプロセスでdllを起動することでこれを解決できることはわかっていますが、単一のプロセスのみを使用したいと考えています。

最新バージョンの Python を使用できました。

0 投票する
1 に答える
346 参照

python - Google Application EngineのPythonスレッド(または同等のもの)回避策?

次のことを行うGoogleAppEngineアプリを作成したいと思います。

  1. クライアントが非同期httpリクエストを作成します
  2. サーバーはそのリクエストの処理を開始します
  3. クライアントは進行状況を取得するためにajaxhttpリクエストを行います

問題は、サーバーの処理(ステップ#2)に30秒以上かかる場合があることです。

Google Application Engineにスレッドを設定することはできず、すべてのタスクを30秒以内に完了する必要があります。そうしないと、タスクがシャットダウンされます。これを回避する方法はありますか?

また、バックエンドとしてpython-djangoを使用しています。

0 投票する
1 に答える
165 参照

python - Pythonで、フルサイズの画像のディレクトリがある場合、複数のCPUコアを使用してサムネイルを生成するにはどうすればよいですか?

私は16コアのマシンを持っていますが、現在のサイズ変更機能は1つのコアしか使用していません。これは、画像の大きなディレクトリには非常に非効率的です。

どんな助けでも大歓迎です。ありがとうございました。

0 投票する
1 に答える
416 参照

python - python、オプション、および考慮事項を使用したファイルの読み取り/書き込みでのリソースの使用

私はまだゲームに慣れていないPythonで開発しています。この問題に正しく取り組むようにしたいと思います。すべてのアドバイスを喜んで受け入れます。

多くの場合、合計サイズが 20 ~ 35 GB を超える、複数のフラット ファイルに保存されたデータを使用しようとすることを想像してみてください。最も一般的なケースでは、これらのファイルは区切られている (csv、タブ) か、単純に固定幅です。目標は、これらのファイル、または各ファイルの一部のサブセットを取得し、入力を解析し (各列はデータ内の変数を表します)、それを何らかの宛先 (ローカルまたはリモートの SQL、さまざまな種類の他のローカル ファイルなど) に送信することです。テキストまたは stata の .dta などの独自のデータ形式を含む出力形式の

目標は、利用可能なシステム リソースを使用して、この操作を可能な限り迅速に実行することです (1 秒あたりのキロバイト数で推測できますか?)。

質問:

  1. コンパイルされた C を使用して読み取り操作を行うと、効率が向上しますか? もしそうなら、どのライブラリの使い方を学ぶべきですか? また、解析と出力も c で行う必要がありますか?

  2. ファイルが .zip または .gz である場合、読み取りと書き込みの前にファイル全体を解凍する必要がありますか? それとも圧縮したままにして、圧縮ファイルから読み取ることができるライブラリを使用しますか?

  3. プログラムはマルチスレッドを使用する必要がありますか? ファイルのサブセット (たとえば、一度に n 行) を読み取り、たとえば j スレッドで解析して出力することを想像します。一度に 1 行ずつファイルを読み取るのが最適かどうかは明らかではありません...そして、スレッドとプロセスの最適な数は、利用可能なリソースとジョブのサイズに依存するようです。
    したがって、コードは、使用するスレッドの数と、各スレッドが実行する必要がある作業量を最適に判断できるほど「スマート」である必要があります。

  4. 異なる方法間の効率をどのように測定し、比較するのでしょうか?

  5. プログラムはこれを動的に実行し、パフォーマンスに基づいて入出力方法を選択できる必要がありますか? (方法 A は常に方法 B を厳密に支配するか、展開環境の特異な変更を行うか)

明確にするために、リソース効率の無視できない改善と引き換えに、コードの非効率性をほぼすべてのレベルで受け入れます。

これらの質問が、私が理解しようとしていることの明確なアイデアを提供してくれることを願っています。私のプログラミング経験はほとんどが科学的/統計的パッケージに限定されているため、私の質問のいずれかが「rtm」に要約される場合は、穏やかに適切なマニュアルを提案してください。

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

python - Python スレッドでのデーモン プロパティの意味

スレッドをデーモンに設定することの意味について少し混乱しています。

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

スレッドは「デーモンスレッド」としてフラグを立てることができます。このフラグの意味は、デーモン スレッドだけが残ったときに Python プログラム全体が終了することです。初期値は作成スレッドから継承されます。フラグはデーモン プロパティを介して設定できます。

これが通常のスレッドと何が違うのかわかりません。

これは、このプログラムが決して終わらないということですか?

メインスレッドが実行を終了しても。すぐに終了しますが?

メインスレッドで sys.exit() を呼び出している状況があり、ログを見るとプロセスがハングし、他のスレッドが実行されているため、質問します。

これは、スレッドが生きている状態で呼び出される sys.exit() と関係がありますか?

0 投票する
1 に答える
903 参照

wxpython - GUI でのクロスプラットフォーム スレッドのサポート: tkinter、pygtk、wxpython、または pyqt

私はpygtkの経験があり、Windowsでスレッドが必要な場合を除いて、非常に快適に感じているので 、仲間のプログラマーがクロスプラットフォーム環境でtkinter、pyqt、およびwxpythonのスレッドをどのように処理するのか疑問に思っていました(または少なくとも linux-windows)? .

各ツールキットのスレッド化コードのサンプルは本当にありがたく思います。

0 投票する
1 に答える
428 参照

python - PyGTKとvisual-python

ビジュアルPythonの3D描画とアニメーションを利用するPyGTKを使用してアプリケーションを開発していますが、両方のライブラリを連携させることはできません。Gtkウィンドウを閉じるとハングアップするか、実行するとスタックします。アプリケーション。

スレッドを試してみましたが、それらは並べて実行されますが、visual-pythonのウィンドウを閉じると、pythonのインタープリターが強制終了され、セグメンテーション違反が発生します。

誰かがPyGtkアプリからvisual-pythonを使用できましたか?