Python threading模塊
python是支持多線程的,并且是native的線程。主要是通過thread和threading這兩個模塊來實現(xiàn)的。thread是比較底層的模 塊,threading是對thread做了一些包裝的,可以更加方便的被使用。這里需要提一下的是python對線程的支持還不夠完善,不能利用多 CPU,但是下個版本的python中已經(jīng)考慮改進這點,讓我們拭目以待吧。 threading模塊里面主要是對一些線程的操作對象化了,創(chuàng)建了叫Thread的class。一般來說,使用線程有兩種模式,一種是創(chuàng)建線程要執(zhí)行的 函數(shù),把這個函數(shù)傳遞進Thread對象里,讓它來執(zhí)行;另一種是直接從Thread繼承,創(chuàng)建一個新的class,把線程執(zhí)行的代碼放到這個新的 class里。我們來看看這兩種做法吧。
[代碼] [Python]代碼
02 |
import string, threading, time |
07 |
threadname = threading.currentThread().getName() |
09 |
for x in xrange(0, int(a)): |
15 |
print threadname, x, count |
24 |
mutex = threading.Lock() |
26 |
for x in xrange(0, num): |
27 |
threads.append(threading.Thread(target=thread_main, args=(10,))) |
36 |
if __name__ == '__main__': |
[代碼] [Python]代碼
05 |
class Test(threading.Thread): |
06 |
def __init__(self, num): |
07 |
threading.Thread.__init__(self) |
12 |
threadname = threading.currentThread().getName() |
14 |
for x in xrange(0, int(self._run_num)): |
18 |
print threadname, x, count |
21 |
if __name__ == '__main__': |
27 |
mutex = threading.Lock() |
29 |
for x in xrange(0, num): |
30 |
threads.append(Test(10)) |
|