본문 바로가기

Kotlin

Kotlin이란(17)

  • Thread 구현 방법
    • Runnable 인터페이스
      • 상위 클래스를 Thread로 할 수 없을 경우
    • Callabe 인터페이스
      • 상위 클래스를 Thread로 할 수 없을 경우
      • 쓰레드의 결과 값을 리턴 받길 원할 경우
      • FutureTask<R>를 이용해 생성한 후 쓰레드에 할당
      • FutureTask
        • FutureTask get()으로 Callable의 call()메소드가 호출되어 결과가 리턴되길 기다림
        • Callable로 구현된 call() 함수를 모니터링하는 역할을 담당
        • cancel(), done(), isCancelled(), isDone()
    • Thread Pool을 이용한 방법
      • ExecutorService
        • newFixedThreadPool(n : Int)
          • n개의 Thread를 만든다
          • 보통 해당 머신의 CPU 코어 개수만큼 만드는 것이 좋다
        • newCachedThreadPool()
          • Thread를 필요하다면 계속 생성
          • 60초 후 사용되지 않는 Thread를 제거
        • newScheduledThreadPool(int)
          • 주기적으로 실행되어야 하는 Thread가 필요할 때 사용 ex) 시계
        • newSingleThreadExecutor()
          • 하나의 Thread 만을 이용하여 작업해야 할 때 사용
      • ExecutorService를 이용한 Task 작업 및 종료
        • execute()
          • return type이 존재하지 않는다.
        • submit()
          • return type이 존재할 때
          • 보통 Callable를 구현한 Task에 작업을 시킬 때 사용
        • invokeAny()
          • return을 Collection으로 리턴 하나 성공한 Task 하나에 대해서만 값을 리턴
        • invokeAll()
          • 성공한 모든 Task에 대하여 Collection 으로 리턴
          • 보통 List<FutureTask<R>> 타입으로 리턴
        • 종료시
          • shutdown(), shutdown(Task), shutdownNow(), awaitTermination()

'Kotlin' 카테고리의 다른 글

Kotlin이란(19)  (0) 2023.09.06
Kotlin이란(18)  (1) 2023.09.06
Kotlin이란(16)  (0) 2023.09.06
Kotlin이란(15)  (0) 2023.09.06
Kotlin이란(14)  (0) 2023.09.06