python 다 중 프로 세 스 사용 및 스 레 드 탱크 사용 방법 코드 상세 설명

다 중 프로 세 스:주로 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("   {}  >>> pid={}".format(arg,os.getpid()))
  for i in range(1,5):
    sys.stdout.write("   {}   {}\r".format(arg,i))
    sys.stdout.flush()
    time.sleep(1)
def main():
  print("     >>> pid={}".format(os.getpid()))
  myp=MyProcess(1,test)
  myp.start()
  myp2=MyProcess(2,test)
  myp2.start()
  myp.join()
  myp2.join()
  print("     ")
if __name__ == '__main__':
  main()
스 레 드 탱크:주로 미래 모듈 을 사 용 했 습 니 다!다음 예,첫 번 째 는 정상 이 고 두 번 째 는 스 레 드 탱크 이 며 세 번 째 는 2 개의 스 레 드 탱크 를 운행 하여 줄 을 서 겠 습 니 다.

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()
총결산
위 에서 말 한 것 은 소 편 이 여러분 에 게 소개 한 python 다 중 프로 세 스 사용 및 스 레 드 탱크 의 사용 방법 코드 에 대한 상세 한 설명 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기