Python中若是要使用線程的話,python的lib中提供了兩種方式。一種是函數式,一種是用類來包裝的線程對象。(例子已經稍加修改)python
一、調用thread模塊中的start_new_thread()函數來產生新的線程,請看代碼:編程
import
time
import
thread
import
sys
TIMEOUT
=
20
def
myThread(
no
,
interval
):
timeTotal
=
0
while
True
:
if
timeTotal
<
TIMEOUT
:
print
"Thread(
%d
): timeTotal(
%d)
\n
"
%(
no
,
timeTotal)
timeTotal
+=
interval
else
:
print
"Thread(
%d
) exits!
\n
"
%
no
break
def
test
():
thread
.
start_new_thread(
myThread
, (
1
,
2))
thread
.
start_new_thread(
myThread
, (
2
,
3))
if
__name__
==
'__main__'
:
test()
這個是
thread.start_new_thread(function,args[,kwargs])
函數原型,其中 function參數是你將要調用的線程函數;args是講傳遞給你的線程函數的參數,他必須是個tuple類型;而kwargs是可選的參數。
線 程的結束通常依靠線程函數的天然結束;也能夠在線程函數中調用thread.exit(),他拋出SystemExit exception,達到退出線程的目的。多線程
二、經過調用threading模塊繼承threading.Thread類來包裝一個線程對象。請看代碼函數
import
threading
import
time
class
MyThread(
threading
.
Thread
):
def
__init__(
self
,
no
,
interval
):
threading
.
Thread
.
__init__(
self)
self
.
no
=
no
self
.
interval
=
interval
def
run(
self
):
while
self
.
interval
>
0
:
print
"ThreadObject(
%d
) : total time(
%d)
\n
"
%(
self
.
no
,
self
.
interval)
time
.
sleep(
1)
self
.
interval
-=
1
def
test
():
thread1
=
MyThread(
1
,
10)
thread2
=
MyThread(
2
,
20)
thread1
.
start()
thread2
.
start()
thread1
.
join()
thread2
.
join()
if
__name__
==
'__main__'
:
test()
其實thread和threading的模塊中還包含了其餘的不少關於多線程編程的東西,例如鎖、定時器、得到激活線程列表等等,請你們仔細參考 python的文檔!spa