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

主頁 > 知識庫 > Python之多進程與多線程的使用

Python之多進程與多線程的使用

熱門標簽:電銷機器人系統廠家鄭州 舉辦過冬奧會的城市地圖標注 阿里電話機器人對話 地圖地圖標注有嘆號 螳螂科技外呼系統怎么用 400電話申請資格 qt百度地圖標注 正安縣地圖標注app 遼寧智能外呼系統需要多少錢

進程與線程

想象在學校的一個機房,有固定數量的電腦,老師安排了一個爬蟲任務讓大家一起完成,每個學生使用一臺電腦爬取部分數據,將數據放到一個公共數據庫。共同資源就像公共數據庫,進程就像每一個學生,每多一個學生,就多一個進程來完成這個任務,機房里的電腦數量就像CPU,所以進程數量是CPU決定的,線程就像學生用一臺電腦開多個爬蟲,爬蟲數量由每臺電腦的運行內存決定。
一個CPU可以有多個進程,一個進程有一個或多個線程。

多進程

1、導包

from multiprocessing import Process

2、寫兩個任務
也就是兩個函數

3、創建一個進程
進程名字 = Process(target=函數名字,函數參數傳字典或元組,是否守護進程)

4、啟動進程
進程名字.start()

5、是否開啟進程守護,一般主進程會等待子進程執行完畢后再關閉程序。當我們想程序主進程跑完,直接銷毀掉未完成的子進程,關閉程序的話,加上一句代碼 :
1.創建進程的時候傳參數daemon=True
2.進程名字.daemon=True

6、進程編號
導包os
獲取當前進程編號

os.getpid()

獲取當前父進程的編號

os.getppid()

代碼示例(未開啟進程守護)

from multiprocessing import Process
import time
import os

# 一個寫作業函數
def homeWork(name, count):
  for i in range(count):
    # 打印當前進程編號os.getpid()
    print("當前進程編號:", os.getpid())

    # 打印當前父進程編號os.getppid()
    print("當前父進程編號:", os.getppid())

    print(name, "正在寫作業...")
    time.sleep(0.2)
# 一個打游戲函數
def game(name, count):
  for i in range(count):
    # 打印當前進程編號os.getpid()
    print("當前進程編號:", os.getpid())

    # 打印當前父進程編號os.getppid()
    print("當前父進程編號:", os.getppid())

    print(name, "正在打游戲...")
    time.sleep(0.2)

if __name__ == '__main__':
  # 打印當前進程編號os.getpid()
  print("當前進程編號:", os.getpid())

  # 進程1寫作業 元組傳參
  p1 = Process(target=homeWork, args=("進程1", 10))
  # 進程2打游戲 字典傳參
  p2 = Process(target=game, kwargs={"name": "進程2", "count": 10})

  # 啟動進程
  p1.start()
  p2.start()
  time.sleep(1)
  print("主進程結束---------------------------------------------")

未開啟線程守護的運行結果:

 # 可以看到主進程結束的,其子進程還在繼續
當前進程編號: 14972
當前進程編號: 5732
當前父進程編號: 14972
進程1 正在寫作業...
當前進程編號: 14752
當前父進程編號: 14972
進程2 正在打游戲...
當前進程編號: 5732
當前父進程編號: 14972
進程1 正在寫作業...
當前進程編號: 14752
當前父進程編號: 14972
進程2 正在打游戲...
當前進程編號: 5732
當前父進程編號: 14972
進程1 正在寫作業...
當前進程編號: 14752
當前父進程編號: 14972
進程2 正在打游戲...
當前進程編號: 5732
當前父進程編號: 14972
進程1 正在寫作業...
當前進程編號: 14752
當前父進程編號: 14972
進程2 正在打游戲...
主進程結束---------------------------------------------
當前進程編號: 5732
當前父進程編號: 14972
進程1 正在寫作業...
當前進程編號: 14752
當前父進程編號: 14972
進程2 正在打游戲...
當前進程編號: 5732
當前父進程編號: 14972
進程1 正在寫作業...
當前進程編號: 14752
當前父進程編號: 14972
進程2 正在打游戲...
當前進程編號: 5732
當前父進程編號: 14972
進程1 正在寫作業...
當前進程編號: 14752
當前父進程編號: 14972
進程2 正在打游戲...
當前進程編號: 5732
當前父進程編號: 14972
進程1 正在寫作業...
當前進程編號: 14752
當前父進程編號: 14972
進程2 正在打游戲...
當前進程編號: 5732
當前父進程編號: 14972
進程1 正在寫作業...
當前進程編號: 14752
當前父進程編號: 14972
進程2 正在打游戲...
當前進程編號: 5732
當前父進程編號: 14972
進程1 正在寫作業...
當前進程編號: 14752
當前父進程編號: 14972
進程2 正在打游戲...

Process finished with exit code 0

代碼示例(開啟進程守護)

from multiprocessing import Process
import time
import os

# 一個寫作業函數
def homeWork(name, count):
  for i in range(count):
    # 打印當前進程編號os.getpid()
    print("當前進程編號:", os.getpid())

    # 打印當前父進程編號os.getppid()
    print("當前父進程編號:", os.getppid())

    print(name, "正在寫作業...")
    time.sleep(0.2)
# 一個打游戲函數
def game(name, count):
  for i in range(count):
    # 打印當前進程編號os.getpid()
    print("當前進程編號:", os.getpid())

    # 打印當前父進程編號os.getppid()
    print("當前父進程編號:", os.getppid())

    print(name, "正在打游戲...")
    time.sleep(0.2)

if __name__ == '__main__':
  # 打印當前進程編號os.getpid()
  print("當前進程編號:", os.getpid())

  # 進程1寫作業 元組傳參 第一種方法啟動進程守護
  p1 = Process(target=homeWork, args=("進程1", 10), daemon=True)
  # 進程2打游戲 字典傳參
  p2 = Process(target=game, kwargs={"name": "進程2", "count": 10})
  # 第二種
  p2.daemon = True
  # 啟動進程
  p1.start()
  p2.start()
  time.sleep(1)
  print("主進程---------------------------------------------")

開啟進程守護的運行結果

當前進程編號: 372
當前進程編號: 10116
當前進程編號: 9860
當前父進程編號: 372
進程1 正在寫作業...
當前父進程編號: 372
進程2 正在打游戲...
當前進程編號: 9860
當前進程編號: 10116
當前父進程編號: 372
進程2 正在打游戲...
當前父進程編號: 372
進程1 正在寫作業...
當前進程編號: 9860
當前進程編號: 10116
當前父進程編號: 372
進程1 正在寫作業...
當前父進程編號: 372
進程2 正在打游戲...
當前進程編號: 9860
當前進程編號: 10116
當前父進程編號: 372
進程1 正在寫作業...
當前父進程編號: 372
進程2 正在打游戲...
主進程結束---------------------------------------------

Process finished with exit code 0

多線程

1、導包

import threading

2、寫兩個任務
也就是兩個函數

3、創建一個線程
線程名字 = threading.Thread(target=函數名字,函數參數傳字典或元組,是否守護進程)

4、啟動線程
線程名字.start()

5、是否開啟線程守護,一般當前程序會等待子線程執行完畢后再關閉程序。當我們想程序跑完,銷毀掉未完成的子線程,直接關閉程序的話,加上一句代碼 :
1.創建線程的時候傳參數daemon=True
2.線程名字.daemon=True

6、線程編號
獲取當前線程編號

threading.current_thread()

代碼示例(未開啟進程守護)

import threading
import time

# 一個寫作業函數
def homeWork(name, count):
  for i in range(count):
    # 打印當前線程
    print(threading.current_thread())
    print(name, "正在寫作業...")
    time.sleep(0.2)
# 一個打游戲函數
def game(name, count):
  for i in range(count):
    # 打印當前線程
    print(threading.current_thread())
    print(name, "正在打游戲...")
    time.sleep(0.2)

if __name__ == '__main__':

  # 線程1寫作業 元組傳參
  t1 = threading.Thread(target=homeWork, args=("進程1", 10))
  # 線程2打游戲 字典傳參
  t2 = threading.Thread(target=game, kwargs={"name": "進程2", "count": 10})

  # 啟動進程
  t1.start()
  t2.start()
  time.sleep(1)
  print("主進程結束###################################################################################")

未開啟線程守護的運行結果

 # 可以看到主進程結束的,其線程還在繼續
Thread(Thread-1, started 3364)>
進程1 正在寫作業...
Thread(Thread-2, started 9100)>
進程2 正在打游戲...
Thread(Thread-2, started 9100)>
進程2 正在打游戲...
Thread(Thread-1, started 3364)>
進程1 正在寫作業...
Thread(Thread-1, started 3364)>
進程1 正在寫作業...
Thread(Thread-2, started 9100)>
進程2 正在打游戲...
Thread(Thread-2, started 9100)>
進程2 正在打游戲...
Thread(Thread-1, started 3364)>
進程1 正在寫作業...
Thread(Thread-1, started 3364)>
進程1 正在寫作業...
Thread(Thread-2, started 9100)>
進程2 正在打游戲...
主進程結束###################################################################################
Thread(Thread-2, started 9100)>
進程2 正在打游戲...
Thread(Thread-1, started 3364)>
進程1 正在寫作業...
Thread(Thread-1, started 3364)>
Thread(Thread-2, started 9100)>
進程2 正在打游戲...進程1
正在寫作業...
Thread(Thread-1, started 3364)>
進程1 正在寫作業...
Thread(Thread-2, started 9100)>
進程2 正在打游戲...
Thread(Thread-2, started 9100)>Thread(Thread-1, started 3364)>
進程1
進程2正在寫作業...
 正在打游戲...
Thread(Thread-2, started 9100)>Thread(Thread-1, started 3364)>

進程2 進程1 正在打游戲...
正在寫作業...

Process finished with exit code 0

代碼示例(開啟線程守護)

import threading
import time

# 一個寫作業函數
def homeWork(name, count):
  for i in range(count):
    # 打印當前線程
    print(threading.current_thread())
    print(name, "正在寫作業...")
    time.sleep(0.2)
# 一個打游戲函數
def game(name, count):
  for i in range(count):
    # 打印當前線程
    print(threading.current_thread())
    print(name, "正在打游戲...")
    time.sleep(0.2)

if __name__ == '__main__':

  # 線程1寫作業 元組傳參
  t1 = threading.Thread(target=homeWork, args=("進程1", 10), daemon=True)
  # 線程2打游戲 字典傳參
  t2 = threading.Thread(target=game, kwargs={"name": "進程2", "count": 10})
  t2.daemon = True

  # 啟動進程
  t1.start()
  t2.start()
  time.sleep(1)
  print("主進程結束###################################################################################")

開啟線程守護的運行結果

Thread(Thread-1, started daemon 15480)>
進程1 正在寫作業...
Thread(Thread-2, started daemon 13700)>
進程2 正在打游戲...
Thread(Thread-2, started daemon 13700)>
進程2 正在打游戲...
Thread(Thread-1, started daemon 15480)>
進程1 正在寫作業...
Thread(Thread-1, started daemon 15480)>Thread(Thread-2, started daemon 13700)>
進程1
進程2 正在寫作業...正在打游戲...

Thread(Thread-2, started daemon 13700)>Thread(Thread-1, started daemon 15480)>

進程1進程2 正在寫作業... 正在打游戲...

Thread(Thread-1, started daemon 15480)>
進程1 正在寫作業...
Thread(Thread-2, started daemon 13700)>
進程2 正在打游戲...
主進程結束###################################################################################

Process finished with exit code 0

到此這篇關于Python之多進程與多線程的使用的文章就介紹到這了,更多相關Python 多進程與多線程內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python多進程并發與多線程并發編程實例總結
  • Python控制多進程與多線程并發數總結
  • python多線程與多進程及其區別詳解
  • Python多進程與多線程的使用場景詳解
  • Python并發:多線程與多進程的詳解
  • 分析詳解python多線程與多進程區別

標簽:淘寶好評回訪 濟源 阜新 興安盟 隨州 昭通 合肥 信陽

巨人網絡通訊聲明:本文標題《Python之多進程與多線程的使用》,本文關鍵詞  Python,之多,進程,與,多,線程,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python之多進程與多線程的使用》相關的同類信息!
  • 本頁收集關于Python之多進程與多線程的使用的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    国产不卡在线视频| 亚洲特黄一级片| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 亚洲福利视频一区| 91精品国产91久久久久久一区二区 | 91精品国产高清一区二区三区 | 一区二区不卡在线视频 午夜欧美不卡在| 99视频国产精品| 午夜精品福利在线| 国产亚洲综合性久久久影院| 成人动漫在线一区| 日本午夜一本久久久综合| 国产人成亚洲第一网站在线播放| 91香蕉视频黄| 九九精品一区二区| 亚洲一区二区视频在线| 国产欧美一区二区精品仙草咪| 色国产精品一区在线观看| 美女视频免费一区| 亚洲黄一区二区三区| 国产午夜精品美女毛片视频| 欧美日韩一区三区| 91小视频免费看| 成人短视频下载 | 日韩高清在线观看| 一区二区三区日韩精品| 久久久精品国产免大香伊 | 免费成人在线观看| 亚洲精品中文字幕乱码三区| 欧美不卡一区二区三区四区| 91黄色免费观看| av电影天堂一区二区在线观看| 日本欧美在线看| 亚洲国产va精品久久久不卡综合| 国产精品乱人伦一区二区| 欧美一区二区三区四区久久| 在线亚洲高清视频| www.欧美色图| 国产成人免费网站| 久久99国产精品久久| 麻豆成人久久精品二区三区小说| 亚洲一区在线观看视频| 一区二区三区在线不卡| 国产精品久线在线观看| 久久五月婷婷丁香社区| 日韩欧美中文字幕精品| 日韩一区二区高清| 欧美一二三区在线观看| 欧美一区午夜视频在线观看| 久久er精品视频| 精品一区二区精品| 国产麻豆视频一区| 午夜日韩在线电影| 视频一区中文字幕| 天天av天天翘天天综合网 | 久久先锋影音av| 国产欧美一区二区精品久导航| 精品久久久久久亚洲综合网| 日韩欧美中文一区| 久久久久成人黄色影片| 国产日本亚洲高清| 亚洲人成网站精品片在线观看| 亚洲欧洲综合另类| 亚洲成av人在线观看| 日韩成人一级片| 国产在线不卡一区| av在线不卡观看免费观看| 91蜜桃婷婷狠狠久久综合9色| 色www精品视频在线观看| 欧美三级在线视频| 久久综合狠狠综合久久综合88 | 欧美一区二区人人喊爽| 日韩一区二区三区视频在线| 久久亚洲春色中文字幕久久久| 久久久久久久性| 一区二区高清免费观看影视大全| 亚洲成在人线免费| 国产成人免费xxxxxxxx| 91国产丝袜在线播放| 日韩欧美三级在线| 亚洲欧美区自拍先锋| 奇米一区二区三区| 91毛片在线观看| 日韩免费在线观看| 亚洲日本护士毛茸茸| 人妖欧美一区二区| 99re6这里只有精品视频在线观看| 欧美视频一区二| 精品1区2区在线观看| 一区二区三区四区五区视频在线观看 | 色悠久久久久综合欧美99| 欧美日韩一卡二卡三卡| 国产亚洲人成网站| 偷窥少妇高潮呻吟av久久免费| 国产一区二区三区免费| 在线观看亚洲a| 国产欧美日韩视频一区二区 | 婷婷六月综合网| 成人高清视频在线观看| 日韩欧美国产一二三区| 亚洲午夜一区二区三区| 成人精品鲁一区一区二区| 欧美日韩一区三区四区| 国产精品麻豆99久久久久久| 六月丁香婷婷色狠狠久久| 在线观看日韩精品| 亚洲色图欧美在线| 国产凹凸在线观看一区二区| 日韩欧美一级二级三级| 天天综合网 天天综合色| 色8久久人人97超碰香蕉987| 中文字幕av一区 二区| 蜜桃av噜噜一区二区三区小说| 欧美性xxxxxx少妇| 一区二区国产盗摄色噜噜| av一二三不卡影片| 国产午夜精品福利| 国产酒店精品激情| 国产亚洲一区字幕| 大桥未久av一区二区三区中文| 久久午夜老司机| 国产高清不卡一区二区| 久久久亚洲高清| 国产一区999| 国产午夜久久久久| jizzjizzjizz欧美| 亚洲激情六月丁香| 欧美三级韩国三级日本三斤| 亚洲综合在线免费观看| 91福利小视频| 日本成人在线一区| 精品国精品自拍自在线| 久久99精品久久只有精品| 日韩欧美中文字幕精品| 国产一区二区剧情av在线| 久久综合狠狠综合| 国产成人小视频| √…a在线天堂一区| 色综合久久久久综合体| 亚洲综合无码一区二区| 欧美日韩高清一区二区| 免费亚洲电影在线| 久久久久国产精品厨房| 91色.com| 热久久久久久久| 国产日韩影视精品| 欧美在线|欧美| 精品在线免费视频| 国产精品久久久久三级| 欧美在线免费视屏| 国产精品一区一区| 夜夜嗨av一区二区三区四季av| 欧美精品一级二级| 国产成人在线观看免费网站| 一区二区三区中文免费| 欧美一级xxx| 91网站最新网址| 美脚の诱脚舐め脚责91| 国产精品少妇自拍| 欧美一区二区三区免费在线看| 国产精品一区二区在线观看不卡| 成人欧美一区二区三区| 91精品国产综合久久久久久久 | 91网站最新地址| 久久99九九99精品| 亚洲激情一二三区| www日韩大片| 色成年激情久久综合| 极品少妇一区二区| 亚洲小说春色综合另类电影| 久久久久久久综合色一本| 欧美制服丝袜第一页| 国产精品一区二区久久精品爱涩| 亚洲成a人在线观看| 国产精品短视频| 日韩视频免费观看高清完整版| 色综合天天狠狠| 成人午夜短视频| 激情小说欧美图片| 亚洲图片欧美色图| |精品福利一区二区三区| 欧美变态口味重另类| 欧美在线视频全部完| 懂色av中文字幕一区二区三区| 美女mm1313爽爽久久久蜜臀| 亚洲国产欧美一区二区三区丁香婷| 久久久久久久久久看片| 欧美一区二区在线视频| 在线观看欧美黄色| 91在线视频免费观看| 成人午夜视频福利| 国产精品69毛片高清亚洲| 日本欧美在线看| 婷婷久久综合九色国产成人 | 丁香婷婷深情五月亚洲| 亚洲精品综合在线| 欧美精品久久久久久久多人混战| 青青草原综合久久大伊人精品| 日韩欧美久久久| 国产精一品亚洲二区在线视频|