• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

메인 시작 영역에 관한 질문

22.05.07 01:05 작성 조회수 226

0

강사님 안녕하세요, 

#메인 시작 영역에 관해 질문드립니다. 

main( ) 함수 실행시 

if __name__ == "__main__" 영역 밖에서 실행했을 때 Runtime Error가 발생하던데, 왜 그런지 알고 싶습니다. 

(Threading에서는 if __name__=="main" 영역 밖에서 실행했을 때 정상적으로 작동하는 것 같은데 말입니다)

아래 전체 코드 드립니다. 감사합니다. 

 

from multiprocessing import Process

import time

import logging

 

def process_func(name):

    print(f"subprocess {name} stated")

    time.sleep(3)

    print(f"subprocess {name} stated")

 

def main():

    format = "%(asctime)s: %(message)s"

    logging.basicConfig(format=format, level=logging.INFO, datefmt="%H:%M:%S")

 

    # 함수 인자 확인

    p = Process(target=process_func, args=('First',))

 

    logging.info('Main_process : before Creating')

 

    p.start()

 

    logging.info('Main_process : Sub Process stated')

    logging.info(f'Main_prcess : Status: {p.is_alive()}')

 

    p.join()

 

    logging.info(f'Main_prcess : Status: {p.is_alive()}')

    logging.info('Main_process : Sub Process finished')

 

# if __name__=="__main__":

main()

 

 

답변 1

답변을 작성해보세요.

1

네 좋은 질문이예요

시작 지점인 __main__ 에서 실제 부모 프로세스에 의하여 잡을 할당하고 실행됩니다.

당연히 main 영역 외부라면 진입점이 없으므로 실행되지 않습니다.

asd5153님의 프로필

asd5153

질문자

2022.05.08

답변 감사합니다!