python 다 중 프로 세 스 multiprocessing 에 관 한 지식 정리

멀 티 프로 세 스
콘 셉 트
在这里插入图片描述
다 중 프로 세 스 기본 프로 세 스 만 들 기
在这里插入图片描述
프로 세 스 대상 생 성
在这里插入图片描述
프로 세 스 회수 프로 세 스 시작
在这里插入图片描述
코드:

import multiprocessing as mp
from time import sleep

#       
def fun():
    print("      ")
    sleep(3)
    print("    ")

#       
p = mp.Process(target = fun)

p.start()   #     

p.join()    #     
실행 결과:
프로 세 스 시작
프로 세 스 종료
Process finished with exit code 0
1.부자 프로 세 스 는 병렬 실행 하 는 하위 프로 세 스 입 니 다.부모 프로 세 스 는 하위 프로 세 스 를 제외 한 내용 을 수행 합 니 다.

import multiprocessing as mp
from time import sleep

#       
def fun():
    print("      ")
    sleep(3)
    print("    ")

#       
p = mp.Process(target = fun)    #  fun                    

p.start()   #     

sleep(2)
print("       ")

p.join()    #     
print("===============")
"""
pid = os.fork
if pid == 0
    fun()
    os._exit(0)
else:
    os.wait()
"""
실행 결과:
프로 세 스 시작
부모 프로 세 스 실행 내용
프로 세 스 종료
===============
2.하위 프로 세 스 는 부모 프로 세 스 의 변 수 를 바 꿀 수 없습니다.
코드:

import multiprocessing as mp
from time import sleep

a = 1

#       
def fun():
    print("      ")
    sleep(3)
    global a
    print("a=", a)
    a = 1000
    print("a=", a)
    print("    ")

#       
p = mp.Process(target = fun)    #  fun                    

p.start()   #     

sleep(2)
print("       ")

p.join()    #     
print("===============")
print("a=", a)
실행 결과:
프로 세 스 시작
부모 프로 세 스 실행 내용
a= 1
a= 1000
프로 세 스 종료
a= 1
여러 프로 세 스 만 들 기
코드:

"""
      
"""

from multiprocessing import Process
import os
from time import sleep

def fun1():
    sleep(2)
    print(os.getppid(), '--', os.getpid(), "  ")

def fun2():
    sleep(3)
    print(os.getppid(), '--', os.getpid(), "  ")

def fun3():
    sleep(4)
    print(os.getppid(), '--', os.getpid(), "  ")

jobs =[]

for th in [fun1, fun2, fun3]:
    p = Process(target = th)
    jobs.append(p)
    p.start()

for i in jobs:
    i.join()
실행 결과:
식사
46013 C 46023 잠
46013 C 46024 학습
매개 변 수 를 포함 하 는 프로 세 스 함수
코드:

from multiprocessing import Process
from time import sleep

#          
def worker(sec, name):
    for i in range(3):
        sleep(sec)
        print("I'm %s"%name)
        print("I'm working...")

# p = Process(target = worker, args = (2, "Tom"))
p = Process(target = worker, kwargs = {'name':'tom', 'sec': 2})

p.start()
p.join()
실행 결과:
I'm tom
I'm working…
I'm tom
I'm working…
I'm tom
I'm working…
사례 연습
在这里插入图片描述
코드:

from multiprocessing import Process
import os

filename = './dace.jpg'
size = os.path.getsize(filename)

#       
def up():
    fr = open(filename, 'rb')
    fw = open('bot,jpg', 'wb')
    n = size//2
    fw.write(fr.read(n))
    fw.close()
    fr.close()

#       
def down():
    fr = open(filename, 'rb')
    fw = open('bot,jpg', 'wb')
    fr.seek(size//2.0)
    fw.write(fr.read())
    fw.close()
    fr.close()

p = Process(target = up)
q = Process(target = down)
p.start()
q.start()
p.join()
q.join()
python 다 중 프로 세 스 multiprocessing 에 관 한 지식 을 정리 하 는 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 python multiprocessing 다 중 프로 세 스 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기