ホームページ  >  記事  >  バックエンド開発  >  Python マルチスレッド プログラミングを実行する方法、Python マルチスレッドを 1 つの記事で理解する

Python マルチスレッド プログラミングを実行する方法、Python マルチスレッドを 1 つの記事で理解する

Tomorin
Tomorinオリジナル
2018-08-16 17:36:432202ブラウズ

この記事では、Python マルチスレッド について紹介します。Python マルチスレッド を理解したい場合は、まず スレッド とは何かを理解する必要があります。

スレッドは、オペレーティング システムが操作のスケジューリングを実行できる最小単位です。これはプロセスに含まれており、プロセス内の実際の操作単位となります。スレッドとは、プロセス内の単一の順次制御フローを指します。プロセス内で複数のスレッドを同時に実行でき、各スレッドは異なるタスクを並行して実行します。

Andマルチスレッドは、複数の異なるプログラムを同時に実行することに似ています。マルチスレッドには次の利点があります:


# #1. スレッドを使用する 長時間かかるプログラム内のタスクをバックグラウンドで処理することができます。

2. ユーザー インターフェイスをより魅力的にすることができ、ユーザーがボタンをクリックして特定のイベントの処理をトリガーすると、プログレス バーがポップアップして処理の進行状況を表示できます

プログラムの実行速度が向上する可能性があります

3. スレッドは、ユーザー入力、ファイルの読み取りと書き込み、ネットワークでのデータの送受信などの待機中のタスクを実装する場合に便利です。この場合、メモリ使用量などの貴重なリソースを解放できます。

4. 実行中のスレッドとプロセスの間には依然として違いがあります。それぞれの独立したスレッドには、プログラム実行のエントリ ポイント、順次実行シーケンス、およびプログラムの終了ポイントがあります。ただし、スレッドは独立して実行できず、アプリケーション プログラム内に存在する必要があり、アプリケーション プログラムは複数のスレッドの実行制御を提供します。

各スレッドには、スレッドのコンテキストと呼ばれる独自の CPU レジスタのセットがあり、スレッドが最後に実行したときの CPU レジスタの状態を反映します。

命令ポインタとスタック ポインタ レジスタは、スレッド コンテキストで最も重要な 2 つのレジスタです。スレッドは常にプロセス コンテキストで実行されます。これらのアドレスは、プロセス コンテキストを所有するプロセスのアドレス空間内のメモリをマークするために使用されます。スレッド。

5. スレッドはプリエンプト (中断) できます。

6. 他のスレッドの実行中にスレッドを一時的に保留 (スリープとも言います) することができます - これがスレッドの退却です。

Python マルチスレッドの学習を開始する

Python でスレッドを使用するには、スレッド オブジェクトをラップする関数またはクラスの 2 つの方法があります。

機能: スレッド モジュールの start_new_thread() 関数を呼び出して、新しいスレッドを生成します。構文は次のとおりです:

thread.start_new_thread ( function, args[, kwargs] )

パラメータの説明:

1.function - スレッド関数。

2.args - スレッド関数に渡されるパラメータはタプル型である必要があります。

3.kwargs - オプションのパラメータ。

添付例


#!/usr/bin/python
# -*- coding: UTF-8 -*-
import thread
import time
# 为线程定义一个函数
def print_time( threadName, delay):
count = 0
while count < 5:
time.sleep(delay)
count += 1
print "%s: %s" % ( threadName, time.ctime(time.time()) )
# 创建两个线程
try:
thread.start_new_thread( print_time, ("Thread-1", 2, ) )
thread.start_new_thread( print_time, ("Thread-2", 4, ) )
except:
print "Error: unable to start thread"
while 1:
pass

上記のプログラムを実行した出力結果は以下のとおりです。

Thread-1: Thu Jan 22 15:42:17 2009
Thread-1: Thu Jan 22 15:42:19 2009
Thread-2: Thu Jan 22 15:42:19 2009
Thread-1: Thu Jan 22 15:42:21 2009
Thread-2: Thu Jan 22 15:42:23 2009
Thread-1: Thu Jan 22 15:42:23 2009
Thread-1: Thu Jan 22 15:42:25 2009
Thread-2: Thu Jan 22 15:42:27 2009
Thread-2: Thu Jan 22 15:42:31 2009
Thread-2: Thu Jan 22 15:42:35 2009

スレッドの終端は通常、スレッドの自然な終端に依存します。スレッド関数。スレッド関数でも実行できます。 thread.exit() を呼び出すと、スレッドを終了する目的を達成するために SystemExit 例外がスローされます。

以上がPython マルチスレッド プログラミングを実行する方法、Python マルチスレッドを 1 つの記事で理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。