Python : MultiProcess Function 내의 스레딩은 다중 프로세스 하나 또는 상위 항목과 동일한 코어에서 실행됩니까?

Neel
def multiprocess_function():
   run = 0   
   while run == 0:
     for i in the range(100):

        #This will initiate 100 threads
        threading.Thread(target=sum, args=(i,0))

     time.sleep(10)

p1 = multiprocessing.Process(target=multiprocess_function)
p1.start

위의 코드 조각에서 새로운 무한 루프 프로세스 (별도의 코어 (예 : # 2)에서)를 시작하고 있습니다. 이 함수 내에서 100 개의 스레드를 시작합니다. 스레드가 동일한 코어 # 2에서 실행됩니까 아니면 기본 Python 코어에서 실행됩니까?

또한 하나의 코어에서 몇 개의 스레드를 실행할 수 있습니까?

롤랜드 스미스

모든 스레드는 시작된 프로세스 내에서 실행됩니다. 이 경우 프로세스 p1.

프로세스에서 실행할 수있는 스레드 수와 관련하여 CPython에서는 한 번에 하나의 스레드Python bytecode를 실행할 수 있다는 점을 명심해야합니다 . 이는 Global Interpreter Lock ( "GIL")에 의해 시행됩니다. 따라서 많은 계산이 필요한 작업의 경우 일반적으로 스레드가 아닌 프로세스를 사용하는 것이 좋습니다.

에 대한 설명서를 보면 concurrent.futures.ThreadPoolExecutor기본적으로 사용하는 작업자 스레드 수는 물리적 프로세서 양의 5 배입니다. 해당 이음새 ThreadPoolExecutor는의 의미 가있는 워크로드 종류에 대해 합리적인 양 입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관