校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識(shí)庫 > Python多線程以及多線程中join()的使用方法示例

Python多線程以及多線程中join()的使用方法示例

熱門標(biāo)簽:企業(yè)彩鈴地圖標(biāo)注 煙臺(tái)電話外呼營銷系統(tǒng) 電銷機(jī)器人錄音要學(xué)習(xí)什么 預(yù)覽式外呼系統(tǒng) 上海正規(guī)的外呼系統(tǒng)最新報(bào)價(jià) 如何地圖標(biāo)注公司 外賣地址有什么地圖標(biāo)注 銀川電話機(jī)器人電話 長春極信防封電銷卡批發(fā)

Python多線程與多進(jìn)程中join()方法的效果是相同的。

下面僅以多線程為例:

首先需要明確幾個(gè)概念:

知識(shí)點(diǎn)一:

當(dāng)一個(gè)進(jìn)程啟動(dòng)之后,會(huì)默認(rèn)產(chǎn)生一個(gè)主線程,因?yàn)榫€程是程序執(zhí)行流的最小單元,當(dāng)設(shè)置多線程時(shí),主線程會(huì)創(chuàng)建多個(gè)子線程,在python中,默認(rèn)情況下(其實(shí)就是setDaemon(False)),主線程執(zhí)行完自己的任務(wù)以后,就退出了,此時(shí)子線程會(huì)繼續(xù)執(zhí)行自己的任務(wù),直到自己的任務(wù)結(jié)束,

見下面 例子一。

知識(shí)點(diǎn)二:

當(dāng)我們使用setDaemon(True)方法,設(shè)置子線程為守護(hù)線程時(shí),主線程一旦執(zhí)行結(jié)束,則全部線程全部被終止執(zhí)行,可能出現(xiàn)的情況就是,子線程的任務(wù)還沒有完全執(zhí)行結(jié)束,就被迫停止,

見下面例子二。

知識(shí)點(diǎn)三:

此時(shí)join的作用就凸顯出來了,join所完成的工作就是線程同步,即主線程任務(wù)在設(shè)置join函數(shù)的地方,進(jìn)入阻塞狀態(tài),一直等待其他的子線程執(zhí)行結(jié)束之后,主線程再開始執(zhí)行直到終止終止,

例子見下面三。

知識(shí)點(diǎn)四:

join有一個(gè)timeout參數(shù):

  • 當(dāng)有設(shè)置守護(hù)線程時(shí),含義是主線程對(duì)于子線程等待timeout的時(shí)間將會(huì)殺死該子線程,最后退出程序。所以說,如果有10個(gè)子線程,全部的等待時(shí)間就是每個(gè)timeout的累加和。簡單的來說,就是給每個(gè)子線程一個(gè)timeout的時(shí)間,讓他去執(zhí)行,時(shí)間一到,不管任務(wù)有沒有完成,直接殺死。
  • 沒有設(shè)置守護(hù)線程時(shí),主線程將會(huì)等待timeout的累加和這樣的一段時(shí)間,時(shí)間一到,主線程結(jié)束,但是并沒有殺死子線程,子線程依然可以繼續(xù)執(zhí)行,直到子線程全部結(jié)束,程序退出。

一:Python多線程的默認(rèn)情況

import threading
import time

def run():
    time.sleep(2)
    print('當(dāng)前線程的名字是: ', threading.current_thread().name)
    time.sleep(2)


if __name__ == '__main__':

    start_time = time.time()

    print('這是主線程:', threading.current_thread().name)
    thread_list = []
    for i in range(5):
        t = threading.Thread(target=run)
        thread_list.append(t)

    for t in thread_list:
        t.start()

    print('主線程結(jié)束!' , threading.current_thread().name)
    print('一共用時(shí):', time.time()-start_time)

其執(zhí)行結(jié)果如下:

關(guān)鍵:

  • 計(jì)時(shí)是對(duì)主線程計(jì)時(shí),主線程結(jié)束,計(jì)時(shí)隨之結(jié)束,打印出主線程的用時(shí)。
  • 主線程的任務(wù)完成之后,主線程隨之結(jié)束,子線程繼續(xù)執(zhí)行自己的任務(wù),直到全部的子線程的任務(wù)全部結(jié)束,程序結(jié)束。

二:設(shè)置守護(hù)線程

import threading
import time

def run():

    time.sleep(2)
    print('當(dāng)前線程的名字是: ', threading.current_thread().name)
    time.sleep(2)


if __name__ == '__main__':

    start_time = time.time()

    print('這是主線程:', threading.current_thread().name)
    thread_list = []
    for i in range(5):
        t = threading.Thread(target=run)
        thread_list.append(t)

    for t in thread_list:
        t.setDaemon(True)
        t.start()

    print('主線程結(jié)束了!' , threading.current_thread().name)
    print('一共用時(shí):', time.time()-start_time)

注意:注意請(qǐng)確保setDaemon()在start()之前

其執(zhí)行結(jié)果如下:

關(guān)鍵點(diǎn):

非常明顯的看到,主線程結(jié)束以后,子線程還沒有來得及執(zhí)行,整個(gè)程序就退出了。

三:join的作用

import threading
import time

def run():

    time.sleep(2)
    print('當(dāng)前線程的名字是: ', threading.current_thread().name)
    time.sleep(2)


if __name__ == '__main__':

    start_time = time.time()

    print('這是主線程:', threading.current_thread().name)
    thread_list = []
    for i in range(5):
        t = threading.Thread(target=run)
        thread_list.append(t)

    for t in thread_list:
        t.setDaemon(True)
        t.start()

    for t in thread_list:
        t.join()

    print('主線程結(jié)束了!' , threading.current_thread().name)
    print('一共用時(shí):', time.time()-start_time)

其執(zhí)行結(jié)果如下:

關(guān)鍵點(diǎn):

可以看到,主線程一直等待全部的子線程結(jié)束之后,主線程自身才結(jié)束,程序退出。

主程序意外退出的情況

在線程A中使用B.join()表示線程A在調(diào)用join()處被阻塞,且要等待線程B的完成才能繼續(xù)執(zhí)行

import threading
import time


def child_thread1():
    for i in range(10):
        time.sleep(1)
        print('child_thread1_running...')


def child_thread2():
    for i in range(5):
        time.sleep(1)
        print('child_thread2_running...')


def parent_thread():
    print('parent_thread_running...')
    thread1 = threading.Thread(target=child_thread1)
    thread2 = threading.Thread(target=child_thread2)
    thread1.setDaemon(True)
    thread2.setDaemon(True)
    thread1.start()
    thread2.start()
    thread2.join()
    1/0
    thread1.join()
    print('parent_thread_exit...')


if __name__ == "__main__":
    parent_thread()

輸出:

parent_thread_running...
child_thread1_running...
child_thread2_running...
child_thread1_running...
child_thread2_running...
child_thread1_running...
child_thread2_running...
child_thread1_running...
child_thread2_running...
child_thread1_running...
child_thread2_running...
Traceback (most recent call last):
  File "E:/test_thread.py", line 31, in module>
    parent_thread()
  File "E:/test_thread.py", line 25, in parent_thread
    1/0
ZeroDivisionError: integer division or modulo by zero

主線程在執(zhí)行到thread2.join()時(shí)被阻塞,等待thread2結(jié)束后才會(huì)執(zhí)行下一句

1/0會(huì)使主線程報(bào)錯(cuò)退出,且thread1設(shè)置了daemon=True,因此主線程意外退出時(shí)thread1也會(huì)立即結(jié)束。thread1.join()沒有被主線程執(zhí)行

總結(jié)

到此這篇關(guān)于Python多線程以及多線程中join()使用的文章就介紹到這了,更多相關(guān)Python多線程join()的用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python 多線程中join()的作用
  • python多線程編程中的join函數(shù)使用心得
  • Python多線程中阻塞(join)與鎖(Lock)使用誤區(qū)解析
  • 對(duì)python 多線程中的守護(hù)線程與join的用法詳解
  • Python多線程threading join和守護(hù)線程setDeamon原理詳解

標(biāo)簽:潮州 湖北 珠海 佳木斯 上饒 西寧 宜昌 盤錦

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python多線程以及多線程中join()的使用方法示例》,本文關(guān)鍵詞  Python,多,線程,以及,中,join,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python多線程以及多線程中join()的使用方法示例》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python多線程以及多線程中join()的使用方法示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    欧美日免费三级在线| 成人精品高清在线| 欧美一区二区免费| 精品一区二区三区在线观看国产| 日韩欧美国产精品一区| 激情综合色综合久久综合| 国产三级精品在线| 91麻豆成人久久精品二区三区| 亚洲精品免费在线| 欧美一区二区在线免费观看| 麻豆视频观看网址久久| 久久精品视频一区二区| 97se亚洲国产综合自在线不卡 | 久久久国产精品不卡| 成人一二三区视频| 亚洲综合在线视频| 亚洲激情网站免费观看| 欧美日韩在线综合| 精品一区二区精品| 亚洲欧洲日韩一区二区三区| 欧美色图12p| 国产suv精品一区二区6| 亚洲精品久久嫩草网站秘色| 日韩午夜av电影| 国产91精品久久久久久久网曝门| 亚洲欧美另类小说视频| 日韩欧美中文字幕精品| 成人黄色片在线观看| 日韩经典一区二区| 中文字幕不卡的av| 欧美一区国产二区| 99久久er热在这里只有精品15| 日产国产欧美视频一区精品| 国产精品久久久久9999吃药| 91精品免费在线观看| 91小视频在线| 国内精品伊人久久久久影院对白| 亚洲精品国久久99热| 久久人人爽爽爽人久久久| 欧美日韩国产精选| av成人动漫在线观看| 美女视频第一区二区三区免费观看网站| 亚洲国产精品99久久久久久久久| 51精品秘密在线观看| bt欧美亚洲午夜电影天堂| 久久精品久久精品| 亚洲成人综合网站| 国产精品久久久久久亚洲毛片 | 久久综合色天天久久综合图片| 99r精品视频| 国产一区二区三区观看| 视频在线观看一区二区三区| 亚洲欧洲日韩av| 国产欧美一区二区三区在线老狼| 777精品伊人久久久久大香线蕉| 99久久精品免费看| 成人免费视频一区| 国产乱国产乱300精品| 日本欧美在线观看| 亚洲成人一二三| 亚洲精品国产视频| 国产精品不卡一区二区三区| 国产欧美日韩在线| 久久精品人人爽人人爽| 精品乱人伦小说| 日韩视频免费观看高清在线视频| 欧美日韩和欧美的一区二区| 色婷婷国产精品综合在线观看| aaa欧美大片| 午夜欧美电影在线观看| 亚洲国产成人精品视频| 亚洲国产成人高清精品| 午夜亚洲国产au精品一区二区| 伊人夜夜躁av伊人久久| 亚洲男帅同性gay1069| 中文字幕日韩欧美一区二区三区| 亚洲精品在线免费观看视频| 欧美一级久久久| 日韩一区二区免费在线电影| 8v天堂国产在线一区二区| 欧美精品日日鲁夜夜添| 91精品国产91久久综合桃花| 在线不卡一区二区| 日韩精品专区在线影院观看| 日韩一级片网站| 精品国产伦一区二区三区观看体验| 欧美第一区第二区| 久久日韩精品一区二区五区| 久久免费偷拍视频| 中文字幕欧美激情一区| 国产精品久久影院| 亚洲一区二区三区美女| 午夜欧美大尺度福利影院在线看| 日本欧美一区二区三区| 韩日精品视频一区| gogo大胆日本视频一区| 欧美最猛黑人xxxxx猛交| 91麻豆精品国产91久久久久久| 日韩一区二区三区视频| 久久五月婷婷丁香社区| 亚洲国产精华液网站w| 1024国产精品| 午夜伊人狠狠久久| 极品少妇xxxx精品少妇| av午夜精品一区二区三区| 欧美性猛交一区二区三区精品| 欧美二区三区的天堂| 日韩精品一区二区三区在线观看| 久久精品欧美日韩精品| 亚洲精品一二三四区| 全国精品久久少妇| 成人精品一区二区三区四区| 欧美色成人综合| 日韩精品一区二区在线| 中文字幕在线不卡国产视频| 日韩福利视频导航| 成人久久久精品乱码一区二区三区| 日本大香伊一区二区三区| 欧美成人女星排行榜| 亚洲人成网站影音先锋播放| 美女视频一区在线观看| 91污片在线观看| 精品日韩欧美一区二区| 亚洲美女少妇撒尿| 激情综合色综合久久| 欧美中文字幕不卡| 国产欧美一区二区精品婷婷| 丝袜美腿亚洲综合| 成人av在线资源网站| 日韩欧美自拍偷拍| 亚洲综合自拍偷拍| 丁香激情综合国产| 日韩女优电影在线观看| 夜夜亚洲天天久久| 成人午夜私人影院| 精品日韩在线一区| 亚洲成人在线网站| 97se亚洲国产综合自在线观| 26uuu色噜噜精品一区| 亚洲国产日韩在线一区模特| 成人免费福利片| 精品处破学生在线二十三| 一区二区三区欧美在线观看| 国产高清精品网站| 日韩三级视频中文字幕| 亚洲一区在线视频| 91麻豆国产精品久久| 国产日产欧美一区| 国产在线一区二区综合免费视频| 欧美视频一区在线观看| 亚洲三级在线免费| 成人免费视频一区二区| 国产午夜亚洲精品午夜鲁丝片 | 亚洲成av人片在线观看无码| av一本久道久久综合久久鬼色| 久久久久综合网| 伦理电影国产精品| 欧美成人女星排行榜| 美洲天堂一区二卡三卡四卡视频| 欧美精品一卡二卡| 婷婷六月综合亚洲| 欧美精品第一页| 亚洲v中文字幕| 欧美另类变人与禽xxxxx| 夜夜精品视频一区二区| 欧美色图天堂网| 亚洲高清在线精品| 欧美视频精品在线观看| 亚洲福利视频一区二区| 欧美日韩视频在线一区二区| 一区二区免费看| 欧美乱妇15p| 另类调教123区| 久久久久久**毛片大全| 高清shemale亚洲人妖| 欧美激情综合五月色丁香小说| 国产成人亚洲综合a∨婷婷图片| 久久综合九色综合欧美就去吻| 国产精品原创巨作av| 国产欧美日韩视频一区二区| 成人黄色免费短视频| 亚洲色图视频免费播放| 在线观看91视频| 琪琪久久久久日韩精品| 精品久久一二三区| 成人av网站免费| 亚洲电影在线播放| 欧美一激情一区二区三区| 国内欧美视频一区二区| 中文一区二区在线观看| 日本精品免费观看高清观看| 亚洲第一福利视频在线| 精品美女一区二区三区| 成人激情午夜影院| 亚洲成人你懂的| 精品国产乱码久久久久久久| 成人黄色一级视频| 午夜婷婷国产麻豆精品| 久久先锋影音av| 色美美综合视频|