好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 手把手帶你了解python多進程,多線程

手把手帶你了解python多進程,多線程

熱門標簽:地圖標注審核表 宿遷星美防封電銷卡 ai電銷機器人源碼 ai電話機器人哪里好 湛江智能外呼系統廠家 西藏房產智能外呼系統要多少錢 外呼并發線路 百度地圖標注沒有了 長沙高頻外呼系統原理是什么

說明

相應的學習視頻見鏈接,本文只對重點進行總結。

多進程

重點(只要看下面代碼的main函數即可)

1.創建

2.如何開守護進程

3.多進程,開銷大,用for循環調用多個進程時,后臺cpu一下就上去了

import time
import multiprocessing
import os
def dance(who,num):
    print("dance父進程:{}".format(os.getppid()))
    for i in range(1,num+1):
        print("進行編號:{}————{}跳舞。。。{}".format(os.getpid(),who,i))
        time.sleep(0.5)
def sing(num):
    print("sing父進程:{}".format(os.getppid()))
    for i in range(1,num+1):
        print("進行編號:{}----唱歌。。。{}".format(os.getpid(),i))
        time.sleep(0.5)
def work():
    for i in range(10):
        print("工作中。。。")
        time.sleep(0.2)
if __name__ == '__main__':
    # print("main主進程{}".format(os.getpid()))
    start= time.time()
    #1 進程的創建與啟動
    # # 1.1創建進程對象,注意dance不能加括號
    # # dance_process = multiprocessing.Process(target=dance)#1.無參數
    # dance_process=multiprocessing.Process(target=dance,args=("lin",3))#2.以args=元祖方式
    # sing_process = multiprocessing.Process(target=sing,kwargs={"num":3})#3.以kwargs={}字典方式
    # # 1.2啟動進程
    # dance_process.start()
    # sing_process.start()
    #2.默認-主進程和子進程是分開的,主進程只要1s就可以完成,子進程要2s,主進程會等所有子進程執行完,再退出
    # 2.1子守護主進程,當主一但完成,子就斷開(如qq一關閉,所有聊天窗口就沒了).daemon=True
    work_process = multiprocessing.Process(target=work,daemon=True)
    work_process.start()
    time.sleep(1)
    print("主進程完成了!")#主進程和子進程是分開的,主進程只要1s就可以完成,子進程要2s,主進程會等所有子進程執行完,再退出
    print("main主進程花費時長:",time.time()-start)
    #

多線程


重點

1.創建

2.守護線程

3.線程安全問題(多人搶票,會搶到同一張)

import time
import os
import threading
def dance(num):
    for i in range(num):
        print("進程編號:{},線程編號:{}————跳舞。。。".format(os.getpid(),threading.current_thread()))
        time.sleep(1)
def sing(count):
    for i in range(count):
        print("進程編號:{},線程編號:{}----唱歌。。。".format(os.getpid(),threading.current_thread()))
        time.sleep(1)
def task():
    time.sleep(1)
    thread=threading.current_thread()
    print(thread)
if __name__ == '__main__':
    # start=time.time()
    # # sing_thread =threading.Thread(target=dance,args=(3,),daemon=True)#設置成守護主線程
    # sing_thread = threading.Thread(target=dance, args=(3,))
    # dance_thread = threading.Thread(target=sing,kwargs={"count":3})
    #
    # sing_thread.start()
    # dance_thread.start()
    #
    # time.sleep(1)
    # print("進程編號:{}主線程結束...用時{}".format(os.getpid(),(time.time()-start)))
    for i in range(10):#多線程之間執行是無序的,由cpu調度
        sub_thread = threading.Thread(target=task)
        sub_thread.start()

線程安全

由于線程直接是無序進行的,且他們共享同一個進程的全部資源,所以會產生線程安全問題(比如多人在線搶票,買到同一張)



#下面代碼在沒有lock鎖時,會賣出0票,加上lock就正常

import threading
import time
lock =threading.Lock()
class Sum_tickets:
    def __init__(self,tickets):
        self.tickets=tickets
def window(sum_tickets):
    while True:
        with lock:
            if sum_tickets.tickets>0:
                time.sleep(0.2)
                print(threading.current_thread().name,"取票{}".format(sum_tickets.tickets))
                sum_tickets.tickets-=1
            else:
                break
if __name__ == '__main__':
    sum_tickets=Sum_tickets(10)
    sub_thread1 = threading.Thread(name="窗口1",target=window,args=(sum_tickets,))
    sub_thread2 = threading.Thread(name="窗口2",target=window,args=(sum_tickets,))
    sub_thread1.start()
    sub_thread2.start()

高并發拷貝(多進程,多線程)

import os
import multiprocessing
import threading
import time
def copy_file(file_name,source_dir,dest_dir):
    source_path = source_dir+"/"+file_name
    dest_path =dest_dir+"/"+file_name
    print("當前進程為:{}".format(os.getpid()))
    with open(source_path,"rb") as source_file:
        with open(dest_path,"wb") as dest_file:
            while True:
                data=source_file.read(1024)
                if data:
                    dest_file.write(data)
                else:
                    break
    pass
if __name__ == '__main__':
    source_dir=r'C:\Users\Administrator\Desktop\注意力'
    dest_dir=r'C:\Users\Administrator\Desktop\test'
    start = time.time()
    try:
        os.mkdir(dest_dir)
    except:
        print("目標文件已存在")
    file_list =os.listdir(source_dir)
    count=0
    #1多進程
    for file_name in file_list:
        count+=1
        print(count)
        sub_processor=multiprocessing.Process(target=copy_file,
                                args=(file_name,source_dir,dest_dir))
        sub_processor.start()
        # time.sleep(20)
    print(time.time()-start)
#這里有主進程和子進程,通過打印可以看出,主進程在創建1,2,3,4,,,21過程中,子進程已有的開始執行,也就是說,每個進程是互不影響的
# 9
# 10
# 11
# 12
# 13
# 當前進程為:2936(當主進程創建第13個時,此時,第一個子進程開始工作)
# 14
# 當前進程為:10120
# 當前進程為:10440
# 15
# 當前進程為:9508
    # 2多線程
    # for file_name in file_list:
    #     count += 1
    #     print(count)
    #     sub_thread = threading.Thread(target=copy_file,
    #                                             args=(file_name, source_dir, dest_dir))
    #     sub_thread.start()
    #     # time.sleep(20)
    # print(time.time() - start)

總結

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!

您可能感興趣的文章:
  • 分析詳解python多線程與多進程區別
  • Python多進程共享numpy 數組的方法
  • 總結python多進程multiprocessing的相關知識
  • Python多線程與多進程相關知識總結
  • python實現多進程并發控制Semaphore與互斥鎖LOCK
  • python 多進程和多線程使用詳解
  • python 實現多進程日志輪轉ConcurrentLogHandler
  • Python多進程與多線程的使用場景詳解
  • python多進程執行方法apply_async使用說明
  • Python 多進程原理及實現
  • python多線程和多進程關系詳解
  • Python多進程的使用詳情

標簽:海南 盤錦 南平 大同 普洱 林芝 寧夏 漯河

巨人網絡通訊聲明:本文標題《手把手帶你了解python多進程,多線程》,本文關鍵詞  手把手,帶你,了解,python,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《手把手帶你了解python多進程,多線程》相關的同類信息!
  • 本頁收集關于手把手帶你了解python多進程,多線程的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 久久精品亚洲AV无码六区篠田| 草逼小视频| 扒开?狂揉?脱脱内内视频二动漫 | 娇妻被别人调教彻底沦陷屈服小说 | 邻居的丝袜脚让我爽翻天视频| 男男bl视频| 粗大从后面狠狠贯穿hbl| 婬欲婬香婬色婬视频在线| 第九夜影院理论| 欧美性乱视频| 又爽又黄的视频| 久久经精品久久精品免费观看| 两只大乳奶充满奶汁| 黑吊大战中国留学校生| 亚洲 欧美 另类 中文 在线三 | 97在线无码精品秘?入口九色| 国产精品稀缺盗摄盗拍| 一对一聊天| 美国情欲满载在线观看草民网| 高辣浓情_新御宅屋| 动漫被?到爽动漫视频免费| 熟女阿?BBW| 九九99re在线视频精品免费 | 午夜被窝福利在线观看| 在车上就等不及了| 伊人插插| 无遮挡毛片a级武则天| 卫生间被教官做好爽HH视频| ?国产精品海角社区在线观看| 三级秋香艳史在线观看| 高三班里女的是个公交车 | 成人免费观看A片毛片衣人| 免费?成人黄动漫APP2024| 免费动漫吸乳羞羞动漫| 欧美最猛黑人xxxxx猛交| 美女的隐私视频黄www软件| 日本熟妇毛茸茸茂密的森林| 钟丽缇色戒HD在线观看| 日产精品卡2卡三卡四卡公司| 狠狠的撞击发泄h| 两个人一上一下剧烈运动|