이전에 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() 를 통해 멀티 스레드 환경을 구성해준 것이 포인트이다