問題タブ [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.
python - Tkinterのカメと糸
世界!Pythonのタートルグラフィックスでは、さまざまなTurtleオブジェクトを作成し、それらを順方向、逆方向のメソッドで操作することができます。スレッドを試してみたかったので、MyTurtleManipulatorというスレッドクラスを作成しました。
実験では、すべてのカメが「同時に」ランダムに動くのを見ると期待していましたが、プログラムを実行すると、次のエラーが発生します。
これはどういう意味ですか、「メインスレッドがメインループにない」とはどういう意味ですか。ご協力ありがとうございました。
multithreading - ストリームの読み取り中に Python3 スレッドを正しく終了する方法
メインループで他のことを処理しながら、スレッドを使用してストリーム (/dev/tty1) から文字列を読み取ります。CTRL-C を押したときにスレッドがメイン プログラムと一緒に終了するようにします。
通常の解決策 (run() ループ内のブール変数) は、ここでは機能しません。これに対処するための推奨される方法は何ですか?
Daemon フラグを設定することはできますが、後で (何らかのクリーンアップを行うために) 価値があると判明する可能性がある quit() メソッドを使用することはできません。何か案は?
python - Python のマルチ スレッド
私は単純な python アプリケーションを作成してワーカー キューを実装しようとしましたが、スレッドについて見つけたすべての Web ページにランダムな男がコメントしています。Python スレッドを使用しないでください。Python スレッドはどうなっていますか? 使用できますか? はいの場合、どのライブラリですか?標準のもので十分ですか?
python - numpy とグローバル インタープリター ロック
ほとんどの時間をnumpy
の線形代数関数内で費やすことになる計算集約型の Python コードを書き込もうとしています。
当面の問題は、恥ずかしいほど並列です。簡単に言えば、それを利用する最も簡単な方法は、複数のスレッドを使用することです。主な障壁はほぼ確実に Global Interpreter Lock (GIL) です。
これを設計するのに役立つように、numpy
操作がその期間中に GIL を解放することが期待できるメンタル モデルがあると便利です。この目的のために、経験則、すべきこととすべきでないこと、ポインタなどをいただければ幸いです。
念のため、 Linux で 64 ビットの Python 2.7.1 を使用しています。1.5.1numpy
とscipy
0.9.0rc2 を使用し、Intel MKL 10.3.1 でビルドされています。
python - リストはスレッドセーフですか?
リストや。の代わりに、複数のスレッドを持つキューを使用することがしばしば提案されていることに気付きました.pop()
。これは、リストがスレッドセーフではないためですか、それとも他の理由によるものですか?
python - Python3でthread.start_new_threadに何が起こったのか
クラスを定義するための不要な行なしで関数をスレッドに変換する機能が気に入りました。_threadについては知っていますが、_threadを使用することは想定されていないようです。Python 3のthread.start_new_threadに相当する実用的な方法はありますか?
python - それぞれが異なるプロキシ設定を持つ複数のスレッド
異なるプロキシ設定で複数の同時スレッドを実行することは可能ですか? スレッドでこれを呼び出しても問題ありません:
スレッドから呼び出された関数で同じコードを呼び出した場合、それは問題ありませんか?
ありがとう
python - Amazonクラウドインスタンス間のPythonマルチプロセッシング
いくつかのAmazonEC2インスタンスで長時間実行されるPython分析プロセスを実行したいと考えています。コードはすでにPythonmultiprocessing
モジュールを使用して実行されており、単一のマシンですべてのコアを利用できます。
分析は完全に並行して行われ、各インスタンスは他のインスタンスと通信する必要はありません。すべての作業は「ファイルベース」であり、各プロセスは各ファイルで個別に機能します...したがって、すべてのノードに同じS3ボリュームをマウントすることを計画していました。
マルチプロセッシング環境をセットアップして、任意の数のコンピューティングインスタンスで同時に実行できるようにするためのチュートリアルを知っている(または提案がある)人はいないかと思いました。
python - pythonスレッドとtkinter.tix.NoteBookタブは最初に開いたタブを超えてアクセスできません
次の例では、デフォルトで開く[ログ]タブ以外の他のタブに書き込むことができません。
コンソールトレースバック:
これは、gui.SettingsFrameまたはgui.ProgressFrameでウィジェットを作成しようとするたびに発生します。main()でtime.sleep(1)を増やし、tix.Label部分が開始する前にタブをクリックすると、tabsコマンドが呼び出されてからコードが機能します。
では、事前にgui.SettingsFrameとgui.ProgressFrameを宣言するにはどうすればよいですか?main()のtix.Labelに到達する前に、コードのタブを通過できますか?
注:スレッド化する必要があります。これは、12の異なることを実行し、マルチスレッド化され、いくつかのプロセスを持つ、より大きなプログラムの一部です。
ありがとう
編集1: フレームを参照する代わりに、クラスにメソッドを追加できます。
そしてそれらをメインで呼び出します:
しかし、結果は同じです:
編集2 :ブライアンオークリーによる非常に素早い迅速で簡単な修正:
ありがとう !
編集3:以下はスレッドセーフな実装です。ボーナスタイマーを追加しました:
これはおそらく、スレッド化されたtkinterguiをコンソールアプリケーションに実装するための最も簡単な方法です。gui.print_queue.put()はprint()を置き換え、GUIが更新するレートはrate変数を調整することでprint_label(self)で変更できます。
楽しみ !
python - Pythonのスレッドに名前で変数を渡す方法は?
次のような関数があるとします。
今、その関数を使用してスレッドを作成し、arg3 ではなく arg2 を指定したいと考えています。私はこれを以下のようにしようとしています:
上記のコードでは、構文エラーが発生します。arg2 としてスレッドに引数を渡すことができるように修正するにはどうすればよいですか?