ホームページ  >  記事  >  バックエンド開発  >  Python スレッディング モジュールとは何ですか?スレッドモジュールとは何かを 3 分で理解する

Python スレッディング モジュールとは何ですか?スレッドモジュールとは何かを 3 分で理解する

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

この記事では主に次の内容について説明しますスレッドとは:スレッドは、オペレーティング システムが計算のスケジューリングを実行できる最小単位です。プロセスはプロセス内に含まれており、プロセス内の実際の処理単位です。スレッドは命令の集合です。

A thread は、プロセス内の単一の順次制御フローを指します。プロセス内で複数のスレッドを同時に実行でき、各スレッドは異なるタスクを並行して実行します。

Python は、スレッドとスレッドという 2 つの標準ライブラリを通じてスレッドをサポートします。 thread は、低レベルのプリミティブなスレッドと単純なロックを提供します。

スレッド モジュールによって提供されるその他のメソッド:

1.threading.currentThread(): 現在のスレッド変数を返します。

2.threading.enumerate(): 実行中のスレッドを含むリストを返します。実行中とは、スレッドの開始後から終了までを指します。開始前と終了後のスレッドは除きます。

3.threading.activeCount(): 実行中のスレッドの数を返します。これは、len(threading.enumerate()) と同じ結果になります。

使用方法に加えて、スレッド モジュールはスレッドを処理するための Thread クラスも提供します。Thread クラスは次のメソッドを提供します:

1.run(): スレッド アクティビティを表すために使用されるメソッド。

2.start(): スレッドアクティビティを開始します。

3.join([time]): スレッドが終了するまで待ちます。これにより、スレッドの join() メソッドが異常終了 (通常終了するか、未処理の例外をスロー) が呼び出されるか、またはオプションのタイムアウトが発生するまで、呼び出しスレッドがブロックされます。

4.isAlive(): スレッドがアクティブかどうかを返します。

5.getName(): スレッド名を返します。

6.setName(): スレッド名を設定します。

Threading モジュールを使用してスレッドを作成する

Threading モジュールを使用してスレッドを作成し、threading.Thread から直接継承して、 __init__ メソッドと run メソッド:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import threading
import time
exitFlag = 0
class myThread (threading.Thread): #继承父类threading.Thread
def __init__(self, threadID, name, counter):
threading.Thread.__init__(self)
self.threadID = threadID
self.name = name
self.counter = counter
def run(self): #把要执行的代码写到run函数里面 线程在创建后会直接运行run函数 
print "Starting " + self.name
print_time(self.name, self.counter, 5)
print "Exiting " + self.name
def print_time(threadName, delay, counter):
while counter:
if exitFlag:
(threading.Thread).exit()
time.sleep(delay)
print "%s: %s" % (threadName, time.ctime(time.time()))
counter -= 1
# 创建新线程
thread1 = myThread(1, "Thread-1", 1)
thread2 = myThread(2, "Thread-2", 2)
# 开启线程
thread1.start()
thread2.start()
print "Exiting Main Thread"

上記プログラムの実行結果は次のとおりです;

Starting Thread-1
Starting Thread-2
Exiting Main Thread
Thread-1: Thu Mar 21 09:10:03 2013
Thread-1: Thu Mar 21 09:10:04 2013
Thread-2: Thu Mar 21 09:10:04 2013
Thread-1: Thu Mar 21 09:10:05 2013
Thread-1: Thu Mar 21 09:10:06 2013
Thread-2: Thu Mar 21 09:10:06 2013
Thread-1: Thu Mar 21 09:10:07 2013
Exiting Thread-1
Thread-2: Thu Mar 21 09:10:08 2013
Thread-2: Thu Mar 21 09:10:10 2013
Thread-2: Thu Mar 21 09:10:12 2013
Exiting Thread-2


以上がPython スレッディング モジュールとは何ですか?スレッドモジュールとは何かを 3 分で理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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