在Python中如果要使用執行緒的話,其函式庫中提供了兩種方法:一種是以函式的方式使用,另一種則是將工作包裝成類別的方式。
1. 使用thread模組中的start_new_thread()來建立新的執行緒:
- import time
- import thread
-
- def timer(no,interval):
- while True:
- print 'Thread :(%d) Time:%s'%(no,time.ctime())
- time.sleep(interval)
-
- def test():
- thread.start_new_thread(timer,(1,1))
- thread.start_new_thread(timer,(2,3))
-
- if __name__=='__main__':
- test()
这个是thread.start_new_thread(function,args[,kwargs])函数原型,其中function参数是你将要调用的线程函数;args是讲传递给你的线程函数的参数,他必须是个tuple类型;而kwargs是可选的参数。
线程的结束一般依靠线程函数的自然结束;也可以在线程函数中调用thread.exit(),他抛出SystemExit exception,达到退出线程的目的。
2、將工作包裝成threading.Thread的子類別來使用多執行緒:
- import threading
- import time
- class timer(threading.Thread):
- def __init__(self,no,interval):
-
- threading.Thread.__init__(self)
- self.no=no
- self.interval=interval
-
- def run(self):
- while True:
- print 'Thread Object (%d), Time:%s'%(self.no,time.ctime())
- time.sleep(self.interval)
-
- def test():
- threadone=timer(1,1)
- threadtwo=timer(2,3)
- threadone.start()
- threadtwo.start()
-
- if __name__=='__main__':
- test()
沒有留言:
張貼留言