python多進(jìn)程使用及線程池的使用方法代碼詳解
多進(jìn)程:主要運(yùn)行multiprocessing模塊
import os,time
import sys
from multiprocessing import Process
class MyProcess(Process):
"""docstring for MyProcess"""
def __init__(self, arg, callback):
super(MyProcess, self).__init__()
self.arg = arg
self.callback = callback
def run(self):
self.callback(self.arg)
def test(arg):
print("子進(jìn)程{}開始>>> pid={}".format(arg,os.getpid()))
for i in range(1,5):
sys.stdout.write("子進(jìn)程{}運(yùn)行中{}\r".format(arg,i))
sys.stdout.flush()
time.sleep(1)
def main():
print("主進(jìn)程開始>>> pid={}".format(os.getpid()))
myp=MyProcess(1,test)
myp.start()
myp2=MyProcess(2,test)
myp2.start()
myp.join()
myp2.join()
print("主進(jìn)程終止")
if __name__ == '__main__':
main()
線程池:主要運(yùn)用了未來(lái)模塊!下面例子,第一個(gè)是正常,第二第線程池,第三個(gè)用運(yùn)行了2個(gè)線程池,會(huì)排隊(duì)
from concurrent.futures import ThreadPoolExecutor
import time
def sayhello(a):
print("hello: "+a)
time.sleep(2)
def main():
seed=["a","b","c"]
start1=time.time()
for each in seed:
sayhello(each)
end1=time.time()
print("time1: "+str(end1-start1))
start2=time.time()
with ThreadPoolExecutor(3) as executor:
for each in seed:
executor.submit(sayhello,each)
end2=time.time()
print("time2: "+str(end2-start2))
start3=time.time()
with ThreadPoolExecutor(2) as executor1:
executor1.map(sayhello,seed)
end3=time.time()
print("time3: "+str(end3-start3))
if __name__ == '__main__':
main()
總結(jié)
以上所述是小編給大家介紹的python多進(jìn)程使用及線程池的使用方法代碼詳解,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Python使用logging結(jié)合decorator模式實(shí)現(xiàn)優(yōu)化日志輸出的方法
這篇文章主要介紹了Python使用logging結(jié)合decorator模式實(shí)現(xiàn)優(yōu)化日志輸出的方法,實(shí)例分析了Python使用logging模塊操作日志的相關(guān)技巧,需要的朋友可以參考下2016-04-04
Django 響應(yīng)數(shù)據(jù)response的返回源碼詳解
這篇文章主要介紹了Django 響應(yīng)數(shù)據(jù)response的返回源碼詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
python中常用檢測(cè)字符串相關(guān)函數(shù)匯總
這篇文章主要介紹了python中常用檢測(cè)字符串相關(guān)函數(shù),實(shí)例匯總了Python針對(duì)字符串?dāng)?shù)字、字母、大小寫等常用檢測(cè)函數(shù),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
python中可以發(fā)生異常自動(dòng)重試庫(kù)retrying
這篇文章主要介紹了python中可以發(fā)生異常自動(dòng)重試庫(kù)retrying,retrying是一個(gè)極簡(jiǎn)的使用Python編寫的庫(kù),主題更多相關(guān)內(nèi)容需要的朋友可以參考一下2022-06-06
在PyTorch中實(shí)現(xiàn)可解釋的神經(jīng)網(wǎng)絡(luò)模型的方法詳解
這篇文章主要為大家介紹在PyTorch如何中實(shí)現(xiàn)可解釋的神經(jīng)網(wǎng)絡(luò)模型,并為您提供使用簡(jiǎn)單的 PyTorch 接口實(shí)現(xiàn)最先進(jìn)的基于概念的模型的工具,需要的朋友可以參考下2023-06-06
calendar在python3時(shí)間中常用函數(shù)舉例詳解
這篇文章主要介紹了calendar在python3時(shí)間中常用函數(shù)的相關(guān)文章,對(duì)此知識(shí)點(diǎn)有興趣的朋友們可以學(xué)習(xí)下。2020-11-11
pycharm遠(yuǎn)程連接服務(wù)器并配置python interpreter的方法
這篇文章主要介紹了pycharm遠(yuǎn)程連接服務(wù)器并配置python interpreter的方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
Python利用Selenium進(jìn)行網(wǎng)頁(yè)自動(dòng)化與動(dòng)態(tài)內(nèi)容抓取操作
Selenium是一個(gè)自動(dòng)化測(cè)試工具,它允許開發(fā)者模擬用戶的瀏覽器行為,執(zhí)行各種交互操作,下面就跟隨小編一起了解下如何使用Python和Selenium進(jìn)行網(wǎng)頁(yè)自動(dòng)化與動(dòng)態(tài)內(nèi)容抓取吧2025-03-03

