マルチ対マルチスレッド
- プログラム:テキストとして文書にコードの束
- プロセス:状態プログラム実行中
- アドレス空間、メモリ、および他のデータ・スタックが含まれています
- 各プロセスは、独自の独立したオペレーティング環境によって完成され、共有データへの複数のプロセスが問題であり、
- スレッド
- スタンドアローンプロセスのセグメントを、プロセスが複数のスレッドを持つことができます
- 軽量プロセス
- プロセスシェアデータ、コンテキスト動作環境の複数のスレッド間
- 共有独占問題
- グローバルインタープリタロック(GIL)
- Pythonのコードの実行は、仮想マシンのpythonによって制御され、
- メインループで実行される制御のスレッドがあります
使用のスレッド
- スレッドの典型的な直接生成threading.Thread
- T = threading.Thread(目標= XXX、引数=(XXX))
- t.start():スタートマルチスレッド
- 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)