python 프로 세 스 의 상태,생 성 및 사용 방법 에 대한 상세 한 설명
프로 세 스 및 상태
1.프로 세 스
프로그램:예 를 들 어 xxx.py 는 프로그램 이 고 정적 입 니 다.
프로 세 스:프로그램 이 실 행 된 후 코드+사용 하 는 자원 을 프로 세 스 라 고 합 니 다.운영 체제 에서 자원 을 분배 하 는 기본 단원 입 니 다.
스 레 드 를 통 해 다 중 작업 을 수행 할 수 있 을 뿐만 아니 라 프로 세 스 도 가능 합 니 다.
2.프로 세 스 의 상태
작업 중,작업 수 는 cpu 의 핵 수 보다 많 습 니 다.즉,일부 작업 이 실행 되 고 있 고,다른 작업 은 cpu 가 실행 되 기 를 기다 리 고 있 기 때문에 서로 다른 상 태 를 초래 합 니 다.
프로 세 스 생 성-multiprocessing
multiprocessing 모듈 은 크로스 플랫폼 버 전의 다 중 프로 세 스 모듈 로 하나의 process 류 를 제공 하여 프로 세 스 대상 을 대표 합 니 다.이 대상 은 독립 된 프로 세 스 로 이해 할 수 있 고 다른 일 을 수행 할 수 있 습 니 다.
1.while 2 개 반복 하기
# -*- coding:utf-8 -*-
from multiprocessing import Process
import time
def run_proc():
""" """
while True:
print("----2----")
time.sleep(1)
if __name__=='__main__':
p = Process(target=run_proc)
p.start()
while True:
print("----1----")
time.sleep(1)
설명 하 다.
# -*- coding:utf-8 -*-
from multiprocessing import Process
import os
import time
def run_proc():
""" """
print(' ,pid=%d...' % os.getpid()) # os.getpid
print(' ...')
if __name__ == '__main__':
print(' pid: %d' % os.getpid()) # os.getpid
p = Process(target=run_proc)
p.start()
3.프로 세 스 문법 구 조 는 다음 과 같다.Process([group [, target [, name [, args [, kwargs]]]]])
# -*- coding:utf-8 -*-
from multiprocessing import Process
import os
from time import sleep
def run_proc(name, age, **kwargs):
for i in range(10):
print(' ,name= %s,age=%d ,pid=%d...' % (name, age, os.getpid()))
print(kwargs)
sleep(0.2)
if __name__=='__main__':
p = Process(target=run_proc, args=('test',18), kwargs={"m":20})
p.start()
sleep(1) # 1 ,
p.terminate()
p.join()
실행 결과:하위 프로 세 스 실행 중,name=test,age=18,pid=45097...
{'m': 20}
하위 프로 세 스 실행 중,name=test,age=18,pid=45097...
{'m': 20}
하위 프로 세 스 실행 중,name=test,age=18,pid=45097...
{'m': 20}
하위 프로 세 스 실행 중,name=test,age=18,pid=45097...
{'m': 20}
하위 프로 세 스 실행 중,name=test,age=18,pid=45097...
{'m': 20}
5.프로 세 스 간 에 전역 변 수 를 공유 하지 않 습 니 다.
# -*- coding:utf-8 -*-
from multiprocessing import Process
import os
import time
nums = [11, 22]
def work1():
""" """
print("in process1 pid=%d ,nums=%s" % (os.getpid(), nums))
for i in range(3):
nums.append(i)
time.sleep(1)
print("in process1 pid=%d ,nums=%s" % (os.getpid(), nums))
def work2():
""" """
print("in process2 pid=%d ,nums=%s" % (os.getpid(), nums))
if __name__ == '__main__':
p1 = Process(target=work1)
p1.start()
p1.join()
p2 = Process(target=work2)
p2.start()
실행 결과:in process1 pid=11349 ,nums=[11, 22]
in process1 pid=11349 ,nums=[11, 22, 0]
in process1 pid=11349 ,nums=[11, 22, 0, 1]
in process1 pid=11349 ,nums=[11, 22, 0, 1, 2]
in process2 pid=11350 ,nums=[11, 22]
파 이 썬 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.