python多執行緒用法:
1.函式式:呼叫thread模組的start_new_thread()方法來建立執行緒,
例如:
thread.start_new_thread(function,args)
–args是函式的引數列表,在python裡用元組表示,如(』args1』,args2……),注意這裡引數必須存在,就算是個無參函式,也要傳遞乙個空元組()
例項:
#!/usr/bin/python
#coding=utf-8
import thread
import time
# 為執行緒定義乙個函式
defprint_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: sun
jul 17 16:11
:04 2016
thread-2: sun
jul 17 16:11
:06 2016
thread-1: sun
jul 17 16:11
:06 2016
thread-1: sun
jul 17 16:11
:08 2016
thread-2: sun
jul 17 16:11
:10 2016
thread-1: sun
jul 17 16:11
:10 2016
thread-1: sun
jul 17 16:11
:12 2016
thread-2: sun
jul 17 16:11
:14 2016
thread-2: sun
jul 17 16:11
:18 2016
thread-2: sun
jul 17 16:11
:22 2016
2.繼承類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
defrun(self):
#把要執行的**寫到run函式裡面 執行緒在建立後會直接執行run函式
print
"starting " + self.name
print_time(self.name, self.counter, 5)
print
"exiting " + self.name
defprint_time
(threadname, delay, counter):
while counter:
if exitflag:
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
多執行緒 基礎多執行緒學習分享
程序 程式是靜止,其真正執行時的程式才稱之為程序 執行緒 輕量級程序 light weight process 程序與執行緒區別 執行緒的組成 建立執行緒 主要的兩種方式 a 繼承thread類方法 步驟 1.編寫類 繼承thread 2.重寫run方法 3.建立執行緒物件 4.呼叫start方法啟...
Python基礎 多執行緒
多執行緒在程式開發過程中特別重要,我們往往把一些耗時的操作在子執行緒中執行,這就是所謂的多執行緒了。在c 11中,寫了一些關於多執行緒的部落格。python也不例外,當然也要有多執行緒了。python提供了兩個模組來實現多執行緒thread 和threading thread 有一些缺點,在thre...
Python基礎 多執行緒
多工可以由多程序完成,也可以由乙個程序內的多執行緒完成。我們前面提到了程序是由若干執行緒組成的,乙個程序至少有乙個執行緒。由於執行緒是作業系統直接支援的執行單元,因此,高階語言通常都內建多執行緒的支援,python也不例外,並且,python的執行緒是真正的posix thread,而不是模擬出來的...