프로그램 응답없음 해결

Jake·2023년 5월 24일
0

이전에 pygame으로 UNO 카드 게임을 만드는 프로젝트를 진행 중 응답없음 에러가 발생하였었다

이전에는 멀티 스레딩을 잘 활용하지 못하여 발생한 에러로 보인다

if create_button.rect.collidepoint(event.pos):
                    CLICK_SOUND.play(0)
                    # 서버 소켓 생성
                    print("server socket")
                    # print("make obj")
                    # 여기서 게임이 실행됨
                    from Data.SOCKET.server_socket_m import start_server, start_new_thread
                    start_new_thread(start_server, (input_boxes[0].text,))
                    server_pw = input_boxes[0].text
                    # 여기서 서버인지 아닌지를 판단하여 넘겨줘야 함
                    from Data.GAME_VIEW.SCREEN.multi_loby import multi_loby
                    multi_loby(SCREEN, SCREEN_WIDTH, SCREEN_HEIGHT, BUTTON_WIDTH, BUTTON_HEIGHT)
                    pass

위와 같이 python의 start_new_thread() 모듈을 사용하니 생각보다 쉽게 해결이 되었다

이전에서는 while loop 메서드와 소켓 프로그램들이 동일한 스레드 내에서 실행이 되었다면 start_new_thread() 를 통해 멀티 스레드 환경을 구성해준 것이 포인트이다

0개의 댓글