run(), main(), 클래스생성자()

실행코드를 셋 중에 아무데나 넣어도 쓰레드만 빼고 일반 함수는 실행에 차이가 없는 것 같아 보입니다.

왜 복잡하게 여러 곳에 실행하게 했을까요?

솔직히 차이를 모르겠네요.