麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Python > 正文

Python 多線程

2019-11-06 06:36:52
字體:
來源:轉載
供稿:網友

Threading

Python的標準庫提供了兩個模塊:threadthreading,thread是低級模塊,threading是高級模塊,對thread進行了封裝。絕大多數情況下,我們只需要使用threading這個高級模塊。

啟動一個線程就是把一個函數傳入并創建Thread實例,然后調用start()開始執行:

import time,threadingdef loop(): 輸出結果:

thread MainThread is running… thread LoopThread is running… thread LoopThread >>> 1 thread LoopThread >>> 2 thread LoopThread >>> 3 thread LoopThread >>> 4 thread LoopThread >>> 5 thread LoopThread ended. thread MainThread ended.

由于任何進程默認就會啟動一個線程,我們把該線程稱為主線程,主線程又可以啟動新的線程,Python的threading模塊有個current_thread()函數,它永遠返回當前線程的實例。主線程實例的名字叫MainThread,子線程的名字在創建時指定,我們用LoopThread命名子線程。名字僅僅在打印時用來顯示,完全沒有其他意義,如果不起名字Python就自動給線程命名為Thread-1,Thread-2……

Lock

import threading# 3.lock# 假定這是你的銀行存款:balance = 0lock = threading.Lock()def change_it(n): # 先存后取,結果應該為0: global balance balance = balance + n balance = balance - ndef run_thread(n): for i in range(100000): lock.acquire() try: change_it(n) finally: lock.release()t1 = threading.Thread(target=run_thread, args=(5,))t2 = threading.Thread(target=run_thread, args=(8,))t1.start()t2.start()t1.join()t2.join()print balance

Queue

from random import randintfrom time import sleepfrom Queue import Queuefrom myThread import MyThreaddef writeQ(queue): print 'producing object for Q...', queue.put('xxx', 1) print "size now", queue.qsize()def readQ(queue): val = queue.get(1) print 'consumed object from Q... size now', / queue.qsize()def writer(queue, loops): for i in range(loops): writeQ(queue) sleep(randint(1, 3))def reader(queue, loops): for i in range(loops): readQ(queue) sleep(randint(2, 5))funcs = [writer, reader]nfuncs = range(len(funcs))def main(): nloops = randint(2, 5) q = Queue(32) threads = [] for i in nfuncs: t = MyThread(funcs[i], (q, nloops), / funcs[i].__name__) threads.append(t) for i in nfuncs: threads[i].start() for i in nfuncs: threads[i].join() print 'all DONE'if __name__ == '__main__': main()

>

starting writer at: Mon Mar 06 16:34:51 2017 add for Q… size now= 1 starting reader at: Mon Mar 06 16:34:51 2017 sub from Q… size now= 0 add for Q… size now= 1 sub from Q… size now= 0 add for Q… size now= 1 add for Q… size now= 2 writer finished at: Mon Mar 06 16:34:57 2017 sub from Q… size now= 1 sub from Q… size now= 0 reader finished at: Mon Mar 06 16:35:06 2017 all DONE

參考文獻: http://www.tuicool.com/articles/vQQNbiz


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 免费播放欧美毛片 | 精品国产乱码一区二区 | 中文字幕在线观看二区 | 圆产精品久久久久久久久久久 | 美女亚洲 | 亚洲精品成人18久久久久 | 一级免费a | 黄视频免费在线 | 中文字幕在线一 | 国产一区二精品区在线 | 成人福利在线视频 | 久草久视频 | 369看片你懂的小视频在线观看 | 国产一区二区三区高清 | 国产剧情在线观看一区二区 | 精品亚洲va在线va天堂资源站 | 精品亚洲在线 | 亚洲第一激情 | 5xx免费看| 国产毛片aaa一区二区三区视频 | 一级做人爱c黑人影片 | 主播粉嫩国产在线精品 | 毛片在线免费视频 | 久草在线手机观看 | 成人激情视频网站 | 中国女警察一级毛片视频 | 麻豆蜜桃在线观看 | 欧美18一19sex性护士农村 | 91九色免费视频 | 亚洲天堂午夜 | 热久久成人| 特级西西444www大精品视频免费看 | 亚洲精品欧美在线 | 成年人在线视频 | 性欧美暴力猛交69hd | 韩国精品久久久 | 羞羞的视频在线 | 嫩草91在线 | 国产午夜精品一区二区三区四区 | 日韩视频一区二区三区四区 | 欧美成人精品不卡视频在线观看 |