RunLoop란 소켓, 파일, 키보드 마우스 등의 입력 소스와 타이머를 처리하는 이벤트 처리 루프. 타이머는 입력이 아니지만 특별한 타입이며 타이머 이벤트가 발생해도 RunLoop가 리턴되지 않는다. 모든 Thread는 RunLoop를 가질 수 있고 RunLoop.current를 통해 접근될 때 생성되고 실행도 직접시켜줘야 한다. 단 Main Thread는 애플리케이션이 실행될 때 자동으로 RunLoop를 생성하고 실행하며 이를 Main RunLoop라고 한다. RunLoop 클래스는 일반적으로 스레드에 안전하지 않으므로 현재 스레드의 컨텍스트 내에서만 메서드를 호출해야 한다. RunLoop는 한 번 실행되면 이벤트를 가져와서, 이에 대한 핸들러를 수행하고 대기상태에 들어간다. 계속해서 이벤트를 처리하려..
RunLoop
RunLoop란 소켓, 파일, 키보드 마우스 등의 입력 소스와 타이머를 처리하는 이벤트 처리 루프. 타이머는 입력이 아니지만 특별한 타입이며 타이머 이벤트가 발생해도 RunLoop가 리턴되지 않는다. 모든 Thread는 RunLoop를 가질 수 있고 RunLoop.current를 통해 접근될 때 생성되고 실행도 직접시켜줘야 한다. 단 Main Thread는 애플리케이션이 실행될 때 자동으로 RunLoop를 생성하고 실행하며 이를 Main RunLoop라고 한다. RunLoop 클래스는 일반적으로 스레드에 안전하지 않으므로 현재 스레드의 컨텍스트 내에서만 메서드를 호출해야 한다. RunLoop는 한 번 실행되면 이벤트를 가져와서, 이에 대한 핸들러를 수행하고 대기상태에 들어간다. 계속해서 이벤트를 처리하려..
2023.07.25