最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python多線程并發(fā)測試過程

 更新時間:2025年05月27日 15:25:35   作者:姑娘別禿頭  
這篇文章主要介紹了python多線程并發(fā)測試過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

一、并發(fā)與并行?

1、多任務概念:操作系統(tǒng)可以同時運行多個任務。

2、并發(fā):任務數(shù)量多于cpu核數(shù),通過操作系統(tǒng)的任務調(diào)度算法,多個任務可以一起執(zhí)行,實際總有一些任務不在一起執(zhí)行,因為切換任務的速度相當快。宏觀上是一起執(zhí)行,微觀上不是一起執(zhí)行的。

3、并行:指的是任務數(shù)量小于cpu核數(shù),即任務真的是一起執(zhí)行。

??多線程都是并發(fā)的狀態(tài),缺點是比并行慢

二、同步與異步的概念?

1、同步:協(xié)同步調(diào)

def work():
    print("1")
def work2():
    print("2")
if __name__ == '__main__':
    work()
    work2()

2、異步:步調(diào)各異

三、線程與進程的區(qū)別?

1、線程被包含在進程內(nèi),一個程序啟動時,先啟動進程,進程調(diào)用線程執(zhí)行任務。

2、線程依賴進程。

3、線程可以被搶占(中斷)

需求1:多線程執(zhí)行不同任務

1、函數(shù)

函數(shù)式:調(diào)用thread模塊中的start_new_thread()函數(shù)來產(chǎn)生新線程:

thread.start_new_thread ( function, args[, kwargs] )

參數(shù)說明:

  • function - 線程函數(shù)。
  • args - 傳遞給線程函數(shù)的參數(shù),他必須是個tuple類型。
  • kwargs - 可選參數(shù)

示例1:主線程不等待子線程

import time
import threading as td

#為線程定義一個函數(shù)

def asr_test1(url):
    print("start")
    print(time.ctime(time.time()))


def asr_test2(url):
    print("end")
    print(time.ctime(time.time()))

if __name__ == '__main__':
#target為函數(shù)名,args為元組,函數(shù)一定要輸入形參
    t1=td.Thread(target=asr_test1,args=("",))
    t2 = td.Thread(target=asr_test1, args=("",))
    t1.start()
    t2.start()
結果:
start
Fri Aug  5 16:03:05 2022
start
Fri Aug  5 16:03:05 2022
示例2、主線程等待子線程執(zhí)行完畢
import threading as th
def work():
    print("1")
def work2():
    print("2")


#原理:啟動時會調(diào)用python進程,進程調(diào)用主線程。
if __name__ == '__main__':
    '''子線程啟動'''
    start_time = time.time()
    t1=th.Thread(target=work)
    t2 = th.Thread(target=work2)
    t1.start()
    t2.start()
    #主線程不會等待
    # t1.join(5)#設置主線程等待子線程的執(zhí)行時間
    end = time.time() - start_time
    print(end)

thread提供了低級別的、原始的線程以及一個簡單的鎖。

Thread類提供以下方法:

  • run(): 用以表示線程活動的方法。
  • start():啟動線程活動。
  • join([time]): 等待至線程中止。這阻塞調(diào)用線程直至線程的join() 方法被調(diào)用中止-正常退出或者拋出未處理的異常-或者是可選的超時發(fā)生。
  • isAlive(): 返回線程是否活動的。
  • getName(): 返回線程名。
  • setName(): 設置線程名。

2、類包裝線程對象

需求2:多線程執(zhí)行相同任務

1.threading并發(fā)性

線程并發(fā)運行并共享內(nèi)存。

代碼如下(重寫run方法,繼承Thread類):

import time
from threading import Thread
'''
Thread其他初始化參數(shù):
target:指定任務函數(shù)
name:指定線程分組
'''
class MyThread(Thread):
    
    def run(self):
        for i in range(100):
            time.sleep(0.1)
            print("請求第{}次".format(self.name,i))


if __name__ == '__main__':
    for i in range(5):
        t=MyThread(name=f"線程{i+1}")
        t.start()

傳遞參數(shù)一:

def work(name,age):
    for i in range(5):
        # time.sleep(1)
        print("{}work1----{}---{}".format(name,i,age))


if __name__ == '__main__':
    #給任務函數(shù)傳遞參數(shù),方式一:args參數(shù),里面是元組
    # t=Thread(target=work,args=("",))
    # t.start()
    #方式2:kargs
    t2 = Thread(target=work, kwargs={"name":"wupig","age":18})
    t2.start()

傳遞參數(shù):繼承類

2.多線程并發(fā)—資源共享,資源競爭問題:

1、無法并行,原因是python解釋器有一把鎖:GIL,在同一時間只能執(zhí)行一個線程。多線程是并發(fā)執(zhí)行的,經(jīng)過python解釋器后進行線程調(diào)度,線程切換機制:

2、線程執(zhí)行遇到IO耗時操作(sleep,網(wǎng)絡io,文件io),python解釋器釋放鎖,進行線程切換,再次獲取全局鎖。

3、線程執(zhí)行時間達到一定的閾值(面試)

解決方法一:加鎖

解決方法二:隊列

死鎖案例:

需求:

1、并發(fā)讀取本地文件。

2、并發(fā)獲取url地址。

xxx.txt文件中有很多URL地址,需求多并發(fā)獲取。

'''需求:并發(fā)讀取txt中的URL地址'''
list_test=[]
filename="../../url.txt"
file=open(filename,"r")
#列表推導式
list_test=[i.strip("\n") for i in file]
def audio_test():
    while list_test:
        url=list_test.pop()
        print(url)

def atest_thread(THREAD_MAX, Test_Script):
    #創(chuàng)建空列表
    thread_list = []
    for i in range(int(THREAD_MAX)):
        # print("**************",i)
        thread_name = 'thread-' + str(i)
        print("thread_name",thread_name)
        new_thread = threading.Thread(target=Test_Script, args="", name=thread_name)
        thread_list.append(new_thread)
        new_thread.start()
    for thread_obj in thread_list:
        #thread_obj.join:等待至線程中止
        thread_obj.join()

if __name__ == '__main__':
    starttime=time.time()
    count = 10
    # THREAD_MAX=10
    atest_thread(count, audio_test)
    endtime=time.time()-starttime
    print(endtime)

占坑

這樣只有一個線程執(zhí)行。需要創(chuàng)建列表,將線程放入列表中,然后循環(huán)變量列表進行json。

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • python的XIsxWriter操作Excel示例詳解

    python的XIsxWriter操作Excel示例詳解

    這篇文章主要介紹了python的XIsxWriter操作Excel示例詳解,xlsxwriter是一個專門用于創(chuàng)建、寫入和操作Excel文件的Python模塊,它提供了豐富的功能和選項,能夠創(chuàng)建復雜的Excel文檔,需要的朋友可以參考下
    2023-09-09
  • 解決pyinstaller打包運行程序時出現(xiàn)缺少plotly庫問題

    解決pyinstaller打包運行程序時出現(xiàn)缺少plotly庫問題

    這篇文章主要介紹了解決pyinstaller打包運行程序時出現(xiàn)缺少plotly庫問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • Python實現(xiàn)刪除時保留特定文件夾和文件的示例

    Python實現(xiàn)刪除時保留特定文件夾和文件的示例

    下面小編就為大家分享一篇Python實現(xiàn)刪除時保留特定文件夾和文件的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python內(nèi)存泄漏排查技巧總結

    python內(nèi)存泄漏排查技巧總結

    這篇文章主要給大家分享了python內(nèi)存泄漏排查技巧總結,工作過程中服務難免遇到內(nèi)存泄漏問題,下面文章就給大家總結一些排查下技巧,具有一定的參考價值,需要的朋友可以參考一下
    2021-12-12
  • 從PySpark中的字符串獲取列表方法講解

    從PySpark中的字符串獲取列表方法講解

    在本篇內(nèi)容里小編給大家分享的是一篇關于從PySpark中的字符串獲取列表方法講解及相關實例,有需要的朋友們跟著學習下。
    2021-12-12
  • 利用Python繪制虎年煙花秀

    利用Python繪制虎年煙花秀

    2022虎年新年即將來臨,小編為大家?guī)砹艘粋€利用Python編寫的虎年煙花特效,文中的示例代碼簡潔易懂,感興趣的同學可以動手試一試
    2022-01-01
  • python采集博客中上傳的QQ截圖文件

    python采集博客中上傳的QQ截圖文件

    這篇文章主要介紹了python采集博客中上傳的QQ截圖文件,因為文件名包含中文會在某些時候亂碼,例如這件的文件名QQ截圖20120926174732,所以需要采集出來修改掉,需要的朋友可以參考下
    2014-07-07
  • python?Django實現(xiàn)增刪改查實戰(zhàn)代碼

    python?Django實現(xiàn)增刪改查實戰(zhàn)代碼

    這篇文章主要介紹了python?Django增刪改查快速體驗,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • python實戰(zhàn)項目scrapy管道學習爬取在行高手數(shù)據(jù)

    python實戰(zhàn)項目scrapy管道學習爬取在行高手數(shù)據(jù)

    這篇文章主要為介紹了python實戰(zhàn)項目scrapy管道學習拿在行練手爬蟲項目,爬取在行高手數(shù)據(jù),本篇博客的重點為scrapy管道pipelines的應用,學習時請重點關注
    2021-11-11
  • python中pandas對多列進行分組統(tǒng)計的實現(xiàn)

    python中pandas對多列進行分組統(tǒng)計的實現(xiàn)

    分組統(tǒng)計在很多時候都需要用到,可以實現(xiàn)很多數(shù)據(jù)庫函數(shù)的功能。本文主要介紹了python中pandas對多列進行分組統(tǒng)計的實現(xiàn),感興趣的可以了解一下
    2021-06-06

最新評論

咸宁市| 柞水县| 泸州市| 吉木乃县| 扶沟县| 云阳县| 武山县| 修水县| 京山县| 濉溪县| 永新县| 湛江市| 庆元县| 霍林郭勒市| 中西区| 布拖县| 德格县| 芦溪县| 兴和县| 太白县| 安岳县| 新干县| 怀来县| 黄陵县| 连云港市| 喀喇| 长武县| 土默特左旗| 巴楚县| 延吉市| 昌平区| 沅陵县| 印江| 雅安市| 凉城县| 尤溪县| 朝阳县| 红安县| 湄潭县| 五常市| 定远县|