国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python threading模塊操作多線程介紹

2020-02-23 00:35:39
字體:
供稿:網(wǎng)友

python是支持多線程的,并且是native的線程。主要是通過thread和threading這兩個模塊來實(shí)現(xiàn)的。thread是比較底層的模塊,threading是對thread做了一些包裝的,可以更加方便的被使用。這里需要提一下的是python對線程的支持還不夠完善,不能利用多CPU,但是下個版本的python中已經(jīng)考慮改進(jìn)這點(diǎn),讓我們拭目以待吧。

    threading模塊里面主要是對一些線程的操作對象化了,創(chuàng)建了叫Thread的class。一般來說,使用線程有兩種模式,一種是創(chuàng)建線程要執(zhí)行的函數(shù),把這個函數(shù)傳遞進(jìn)Thread對象里,讓它來執(zhí)行;另一種是直接從Thread繼承,創(chuàng)建一個新的class,把線程執(zhí)行的代碼放到這個新的class里。我們來看看這兩種做法吧。

#-*- encoding: gb2312 -*-import string, threading, timedef thread_main(a):  global count, mutex  # 獲得線程名  threadname = threading.currentThread().getName()    for x in xrange(0, int(a)):    # 取得鎖    mutex.acquire()    count = count + 1    # 釋放鎖    mutex.release()    print threadname, x, count    time.sleep(1)  def main(num):  global count, mutex  threads = []    count = 1  # 創(chuàng)建一個鎖  mutex = threading.Lock()  # 先創(chuàng)建線程對象  for x in xrange(0, num):    threads.append(threading.Thread(target=thread_main, args=(10,)))  # 啟動所有線程  for t in threads:    t.start()  # 主線程中等待所有子線程退出  for t in threads:    t.join()     if __name__ == '__main__':  num = 4  # 創(chuàng)建4個線程  main(4)

上面的就是第一種做法,這種做法是很常見的,下面是另一種,曾經(jīng)使用過Java的朋友應(yīng)該很熟悉這種模式:

#-*- encoding: gb2312 -*-import threadingimport timeclass Test(threading.Thread):  def __init__(self, num):    threading.Thread.__init__(self)    self._run_num = num    def run(self):    global count, mutex    threadname = threading.currentThread().getName()      for x in xrange(0, int(self._run_num)):      mutex.acquire()      count = count + 1      mutex.release()      print threadname, x, count      time.sleep(1)if __name__ == '__main__':  global count, mutex  threads = []  num = 4  count = 1  # 創(chuàng)建鎖  mutex = threading.Lock()  # 創(chuàng)建線程對象  for x in xrange(0, num):    threads.append(Test(10))  # 啟動線程  for t in threads:    t.start()  # 等待子線程結(jié)束  for t in threads:    t.join() 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 滦平县| 宽城| 襄城县| 云阳县| 西安市| 靖江市| 密山市| 江阴市| 正安县| 阜宁县| 宣恩县| 玉山县| 澄江县| 南昌县| 贵溪市| 积石山| 牟定县| 西畴县| 平顺县| 黔东| 万宁市| 浮山县| 原平市| 宝鸡市| 南京市| 上思县| 通许县| 甘南县| 建阳市| 青川县| 迁西县| 德化县| 荆州市| 湖北省| 常宁市| 明溪县| 水城县| 梨树县| 砚山县| 永兴县| 浦县|