새소식

iOS

RunLoop

  • -

RunLoop란 소켓, 파일, 키보드 마우스 등의 입력 소스와 타이머를 처리하는 이벤트 처리 루프.

타이머는 입력이 아니지만 특별한 타입이며 타이머 이벤트가 발생해도 RunLoop가 리턴되지 않는다.

모든 Thread는 RunLoop를 가질 수 있고 RunLoop.current를 통해 접근될 때 생성되고 실행도 직접시켜줘야 한다.

단 Main Thread는 애플리케이션이 실행될 때 자동으로 RunLoop를 생성하고 실행하며 이를 Main RunLoop라고 한다.

RunLoop 클래스는 일반적으로 스레드에 안전하지 않으므로 현재 스레드의 컨텍스트 내에서만 메서드를 호출해야 한다.

RunLoop는 한 번 실행되면 이벤트를 가져와서, 이에 대한 핸들러를 수행하고 대기상태에 들어간다. 계속해서 이벤트를 처리하려면 반복적으로 실행시켜야 한다.

  • func run()
  • func run(mode: RunLoop.Mode, before: Date) -> Bool
  • func run(until: Date) - 반복적으로 RunLoop를 실행할 때 주로 사용
  • func acceptInput(forMode: RunLoop.Mode, before: Date)

출처

https://babbab2.tistory.com/68

 

iOS) 런 루프(RunLoop) 이해하기

안녕하세요 :) 소들입니다 오늘은 RunLoop라는 것에대해 공부를 해볼 건데여 음... 내용이 좀 어려울 수도 있어여!! 저도 오랜만에 다뤄서 완전히 이해하고 쓰는 내용이 아니라... (한 1년 전에 공부

babbab2.tistory.com

 

반응형

'iOS' 카테고리의 다른 글

UIView와 CALayer  (0) 2023.07.21
Auto Layout 라이프사이클 한눈에 볼 수 있게 정리하기  (0) 2023.07.21
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.