각 태스크의 실행 시작이 이전에 실행된 태스크에 따라 달라진다. 시작이 지연되거나 전혀 실행되지 않을 수도
있다.
| 동시 실행 |
태스크는 병렬 및 인터리브
interleave
1
로 실행된다. 이 실행은 더 나은
CPU
사용률이란 장점을 가
지지만, 단점으로는 본질적으로 스레드 안전하지 않으므로 동기화가 요구될 수 있다.
※
효과적인 멀티스레드 설계는 순차 실행과 동시 실행을 통해 실행 환경을 활용한다. 선택은 태스
크의 종류에 따라 달라진다. 고립되고 독립적인 태스크는 처리량을 증가시키기 위해 동시 실행
할 수도 있지만, 순서가 필요하거나 동기화 없이 공통 자원을 공유하는 태스크는 순차 실행해야
한다.
2.3.1
동시 실행 설계
동시 실행은 다양한 방법으로 구현될 수 있으므로 설계 시 실행하는 스레드의 개수와 그들의 관
계를 관리하는 방법을 고려해야 한다. 기본 원칙은 다음과 같다.
●
자원의 생성과 해체의 빈도를 감소시키기 위해 항상 새로운 스레드를 만드는 것보다 재사용을 권장한다.
●
필요 이상으로 스레드를 사용하지 않는다. 사용하는 스레드가 많을수록 더 많은 메모리와 프로세서 시간이 소
비된다.
2.4
마치며
안드로이드 응용프로그램은 싱글 및 멀티프로세서 플랫폼에서 성능을 향상하기 위해
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.