python concurrent.future 모듈 사용 테스트
2555 단어 pythonconcurrent
concurrent.future 는 3.2 에 도 입 된 새로운 모듈 로 비동기 실행 가능 한 대상 에 게 고 층 인 터 페 이 스 를 제공 합 니 다.
Thread PoolExecutor 를 사용 하여 다 중 스 레 드 프로 그래 밍 을 할 수 있 습 니 다.ProcessPoolExecutor 는 다 중 프로 세 스 프로 그래 밍 을 할 수 있 습 니 다.이 인 터 페 이 스 는 추상 적 인 Executor 에 의 해 정 의 됩 니 다.
이 모듈 은 두 가지 유형 을 제공 합 니 다.하 나 는 실행 기 류 Executor 이 고 다른 하 나 는 Future 류 입 니 다.
실행 기 는 작업 탱크 를 관리 하 는 데 사 용 됩 니 다.future 는 작업 으로 계 산 된 결 과 를 관리 하 는 데 사 용 됩 니 다.future 대상 을 직접 조작 하지 않 아 도 됩 니 다.API 가 풍부 하기 때 문 입 니 다.
설명 하 다.
Python 3.2 부터 표준 라 이브 러 리 는 concurrent.futures 모듈 을 제공 합 니 다.Thread PoolExecutor 와 ProcessPoolExecutor 두 가지 종 류 를 제공 하여 threading 과 multiprocessing 에 대한 추상 화 를 실현 하고 스 레 드 풀/프로 세 스 풀 을 작성 하 는 데 직접적인 지원 을 제공 합 니 다.
#! /usr/bin/env python
# -*- coding: utf-8 -*-#
# -------------------------------------------------------------------------------
# Name: demo3
# Author: yunhgu
# Date: 2021/7/8 15:17
# Description:
# -------------------------------------------------------------------------------
import os
import time
import threading
from concurrent.futures import ProcessPoolExecutor, ThreadPoolExecutor, as_completed
def work(x):
time.sleep(1)
temp = f" {os.getppid()}: {os.getpid()}: {threading.get_ident()}:{x}"
return temp
def sub_thread():
temp_list = []
with ThreadPoolExecutor(max_workers=3) as t:
task_list = [t.submit(work, i) for i in range(5)]
for task in as_completed(task_list):
if task.done():
temp_list.append(task.result())
return temp_list
def main():
print(f" :{os.getpid()}")
path_list = []
with ProcessPoolExecutor(max_workers=3) as p:
task_list = [p.submit(sub_thread) for i in range(5)]
for task in as_completed(task_list):
if task.done():
path_list.append(task.result())
for path in path_list:
print(path)
if __name__ == '__main__':
main()
네가 언제 시작 하든지 간 에 중요 한 것 은 시작 한 후에 멈 추 지 않 는 것 이다.네가 언제 끝나 든 지 간 에 중요 한 것 은 끝 난 후에 후회 하지 않 는 것 이다.
python concurrent.futures 모듈 의 사용 테스트 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 python concurrent 사용 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.