본문 바로가기

안드로이드 프로그래밍

Scheduler

https://velog.io/@alsgus92/Java-Thread-Pool%EC%9D%80-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%93%B0%EC%9D%BC%EA%B9%8C

 

[Java/Android] Thread Pool은 어떻게 동작할까?

Thread Pool 이란? Thread Pool은 작업을 실행하는데 있어 사전에 미리 생성되어 사용할 준비가 된 Thread 모음이며, 효율적으로 Thread를 처리하여 전반적인 Runtime 성능을 향상시키기 위해 생겨난 Thead 제

velog.io

 

Thread 사용 방법 2가지

1. Thread 클래스를 상속하여 run() 메소드를 override

2. Runnable 인터페이스를 구현(implement) 해서 run() 메서드 작성

 

class ActivateInput implements Runnable {
    @Override
    public void run() {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                if (levels_list == null || idx >= levels_list.size()) {
                    if (runner.require_input()) {
                        getting_input = true;
                        binding.progress.setProgressDrawable(AppCompatResources.getDrawable(PlayActivity.this, R.drawable.circular_progressbar_on));
                    } else {
                        maintain_tag = true;
                    }
                }
            }
        });
    }
}

 

runOnUiThread(new Runnable())

Runnable 객체를 메인 스레이드에서

실행하도록 만드는 메소드로 현재 스레드가

메인 스레드이면 Runnable 객체의 run() 메소드 실행

아니면

Handler에 post() 메소드로 스레드에 이벤트 큐를 발송

 

Thread는 커널 리소스를 참조하므로

생성되거나 파괴될 때 비용이 많이 듬.

메모리 풀처럼

Thread Pool을 만들어

사용할 Thread를 미리 만들어 놓아

사용자의 요청을 빠르게 수용하고 처리하자.

 

newScheduledThreadPool

고정된 크기의 Thread Pool을 생성하고

Thread를 "예약된 시간"에

"일정한 시간 간격"으로 작업을 수행하도록 스케줄링

 

일정 시간마다 혹은 주기적으로 반복해야하는

Task에 대한 병렬 작업을 위해 사용

 

https://itmining.tistory.com/5

 

[안드로이드] Thread, Handler, Looper를 통한 백그라운드 처리

이 글은 PC 버전 TISTORY에 최적화 되어있습니다. 서론 안드로이드의 UI는 기본적으로 메인스레드를 주축으로하는 싱글 스레드 모델로 동작하므로, 메인 스레드에서는 긴 작업을 피해야 합니다. 즉

itmining.tistory.com

 

 

'안드로이드 프로그래밍' 카테고리의 다른 글

Room 구조  (0) 2025.04.06
Progressbar  (0) 2024.03.27
JSON 심화  (0) 2024.03.26
All about Intent  (0) 2024.03.24
뷰 바인딩  (0) 2024.03.24