반응형
Python에서 동시에 두 가지 기능을 실행하려고합니다. multiprocessing
을 사용하는 아래 코드를 시도했지만 코드를 실행하면 첫 번째가 완료된 후에 만 두 번째 함수가 시작됩니다.
from multiprocessing import Process
def func1:
#does something
def func2:
#does something
if __name__=='__main__':
p1 = Process(target = func1)
p1.start()
p2 = Process(target = func2)
p2.start()
해결 방법
당신은 그것을 올바르게하고 있습니다. :)
이 어리석은 코드를 실행 해보세요.
from multiprocessing import Process
import sys
rocket = 0
def func1():
global rocket
print 'start func1'
while rocket < sys.maxint:
rocket += 1
print 'end func1'
def func2():
global rocket
print 'start func2'
while rocket < sys.maxint:
rocket += 1
print 'end func2'
if __name__=='__main__':
p1 = Process(target = func1)
p1.start()
p2 = Process(target = func2)
p2.start()
'start func1'과 'start func2'가 인쇄되고 (매우) 오랜 시간이 지나면 마침내 함수가 종료되는 것을 볼 수 있습니다. 그러나 그들은 실제로 동시에 실행될 것입니다.
프로세스를 시작하는 데 시간이 걸리기 때문에 'start func1' 전에 'start func2'가 표시 될 수도 있습니다.
참조 페이지 https://stackoverflow.com/questions/18864859
반응형
'파이썬' 카테고리의 다른 글
파이썬 How to un-escape a backslash-escaped string? (0) | 2021.01.06 |
---|---|
파이썬 How do I tell PyLint "it's a variable, not a constant" to stop message C0103? (0) | 2021.01.06 |
파이썬 AttributeError : 'str'개체에 'items'속성이 없습니다. (0) | 2021.01.06 |
파이썬 Python twisted: where to start (0) | 2021.01.06 |
파이썬 문자열의 모든 따옴표를 이스케이프 된 따옴표로 바꾸시겠습니까? (0) | 2021.01.06 |
댓글