首頁 >後端開發 >Python教學 >什麼是Python Threading模組? 3分鐘了解什麼是線程模組

什麼是Python Threading模組? 3分鐘了解什麼是線程模組

Tomorin
Tomorin原創
2018-08-16 17:37:191908瀏覽

本文主要講述什麼是執行緒執行緒是作業系統能夠進行運算調度的最小單位。進程被包含在進程中,是進程中實際處理單位。一條線程就是一堆指令集合。

一條線程是指進程中一個單一順序的控制流,一個進程中可以並發多個線程,每個線程並行執行不同的任務。

Python透過兩個標準函式庫thread和threading提供對執行緒的支援。 thread提供了低階的、原始的執行緒以及一個簡單的鎖。

threading 模組提供的其他方法:

1.threading.currentThread(): 傳回目前的執行緒變數。

2.threading.enumerate(): 傳回一個包含正在執行的執行緒的list。正在執行指執行緒啟動後、結束前,不包含啟動前和終止後的執行緒。

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 Threading模組? 3分鐘了解什麼是線程模組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn