3
import threading 
print threading.activeCount() 

出力:2なぜ、最初にPythonスレッド数が2になるのですか?

このコードはファイルや実行に保存されます。

メインスレッドのときはどうすれば2になりますか?

foo.pyファイルを実行すると、pythonはメインスレッドに加えてデフォルトで別のスレッドを実行しますか?

+1

これは何をテストしていますか?あなたが 'ipython'や' IDLE'でテストしていると思います。どちらもバックグラウンド作業のためにスレッドを使います。普通のPythonインタプリタは、 'PYTHONSTARTUP'ファイルなどでそれを行うように設定しない限り、追加のスレッドを起動しません。 – ShadowRanger

+0

私は '1'を取得します(python 3.5.2を使用) – Olian04

答えて

5

霊能力のデバッグ:プレーンなPythonインタプリタでは実行されていません。プレーンなPythonインタプリタは余分なスレッドを起動しません(あなたが奇妙なPYTHONSTARTUPファイルを持っていない限り)が、他のインタプリタはそうです。たとえば:

  • ipython(プロンプトを遅らせることを避けるために)バックグラウンドでコマンド履歴を保存するために、余分なスレッドを起動
  • IDLEは、ソケットを介して通信する複数のプロセスを使用して設計され、それはあなたを提供し、対話型インタプリタがあるさデーモンスレッドを使用してバックグラウンドソケット通信を実行する

実行してみてくださいprint threading.enumerate();たとえば、ipythonHistorySavingThreadというサブクラスを使用していて、IDLEが普通のThreadのサブクラスですが、実行する関数の名前はSockThreadとなります。これは何をしているのかという手がかりを与えます)。

関連する問題