日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

python threading模块多线程源码示例(一)

發布時間:2023/11/27 生活经验 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python threading模块多线程源码示例(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用python模塊threading來編寫多線程程序的基本思想就是, 在threading.Thread類的基礎上派生出一個子類, ?將業務邏輯在該子類的run函數中實現, 創建該子類對象的線程池,并執行該子類對象的執行函數.

下面給出使用python中的threading模塊進行多線程編程的一個示例, 在源碼中,我們創建了4個線程的一個線程池和一個共享計數器, 然后讓每個線程搶占執行時,將該計數器增1, 然后休眠. 這里相當于給出了一個二維空間, 線程數是一維, 每個線程執行的總次數是另一維, 從下面的運行結果可以很方便地看出: 線程輪詢調度的情況.

注意這里對count的print輸出需要包含在互斥鎖內部,否則打印結果不對.

源碼實現:

#!/usr/bin/env python
#encoding: utf-8import threading
import time#入參是線程調用次數
class Test(threading.Thread):def __init__(self, num):threading.Thread.__init__(self)self._run_num = numdef run(self):global count, mutexthreadname = threading.currentThread().getName()for x in xrange(0, int(self._run_num)):mutex.acquire()print threadname, x, countcount = count + 1mutex.release()time.sleep(1)if __name__ == '__main__':global count, mutexthreads = []num = 4count = 1# 創建鎖mutex = threading.Lock()# 創建線程對象for x in xrange(0, num):threads.append(Test(10))# 啟動線程for t in threads:t.start()# 等待子線程結束for t in threads:t.join()

運行效果圖:


總結

以上是生活随笔為你收集整理的python threading模块多线程源码示例(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。