Pythonのスレッドとプロセスの学習ノート

マルチ対マルチスレッド

  • プログラム:テキストとして文書にコードの束
  • プロセス:状態プログラム実行中
    • アドレス空間、メモリ、および他のデータ・スタックが含まれています
    • 各プロセスは、独自の独立したオペレーティング環境によって完成され、共有データへの複数のプロセスが問題であり、
  • スレッド
    • スタンドアローンプロセスのセグメントを、プロセスが複数のスレッドを持つことができます
    • 軽量プロセス
    • プロセスシェアデータ、コンテキスト動作環境の複数のスレッド間
    • 共有独占問題
  • グローバルインタープリタロック(GIL)
    • Pythonのコードの実行は、仮想マシンのpythonによって制御され、
    • メインループで実行される制御のスレッドがあります

使用のスレッド

  • スレッドの典型的な直接生成threading.Thread
    1. T = threading.Thread(目標= XXX、引数=(XXX))
    2. t.start():スタートマルチスレッド
    3. t.join():<フォント色=赤>マルチスレッド実行待機完了</ FONT>
  • ケース01:

輸入スレッドの
インポート時

DEF loop01(IN01):
印刷( "にloop01を開始:{0}"形式(time.ctime()))
プリント( "loop01参数:{0}"形式(IN01))
time.sleep(4)
印刷( "エンドloop01で:{0}"形式(time.ctime()))

loop02 DEF(IN01、IN02):
プリント(「スタートATをloop02:{0}。フォーマット(time.ctime()))
「(印刷loop02パラメータ、最初のパラメータ{0}、{1}二番目のパラメータ".format(IN01、IN02))
time.sleep(2)
印刷("エンドはloop02 AT :. {0}「形式(time.ctime()))

もし名前 == ' メイン ':
印刷( "から:{0}"形式(time.ctime()))
T1 = threading.Thread(目標= loop01、引数=( "loop01参数"))
T2 = threading.Thread(目標= loop02、引数=( "loop02参数1"、 "loop02参数2"))
t1.start()
t2.start()
t1.join()
t2.join()
すべてで行わ」(印刷。{0}」形式(time.ctime()))
一方TRUE:
time.sleep(10)

おすすめ

転載: blog.51cto.com/11389430/2460258