일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- mockito
- 코루틴
- 안드로이드
- Rxjava
- 알게되는
- 안드로이드강좌
- 글또
- 테스트
- 회고
- viewmodel
- Gradle
- 알고리즘
- 병럴프로그래밍
- 안드로이드스튜디오
- android
- 코틀린
- 자바
- k8s
- Kotlin
- 스레드
- 디자인패턴
- 책
- theming
- Compose
- kotlin강좌
- 병렬프로그래밍
- g 단위테스트
- Coroutine
- ReactiveProgramming
- 커스텀상태
- Today
- Total
목록일상 (61)
선생님, 개발을 잘하고 싶어요.
스레드 풀을 설정할 때 사용할 옵션 살피기 Executor를 사용하는 예시 보기 🤔 이미 RxJava, Kotlin coroutine과 같은 작업 관리를 위한 라이브러리를 사용하고 있는데 Executor 디테일을 알아둘 필요가 있을까? 작업과 실행 정책 간의 보이지 않는 연결 관계 일정한 조건을 갖춘 실행 정책이 필요한 작업 작업이 실행 정책에 의존성을 가진 경우가 있다. 의존성 있는 작업 이 경우 스레드 부족 데드락(thread starvation deadlock)이 발생할 수 있다. 이런 작업을 수행하는 경우에 실행 정책을 섬세하게 선택해야 한다. 스레드 한정 기법을 사용하는 작업 같은 스레드를 사용한다고 가정한 작업은, Executor가 단일 스레드로 동작하지 않을 때 스레드 안전성을 쉽게 잃는다...
자바는 실행 중인 스레드 강제 종료 지원 ❌ 강제 종료하면 공유 상태가 비정상적인 상태에 놓일 수 있음 공유 파일을 open 하고 작업하던 스레드를 강제 종료하면 누가 close 할 수 있나? 인터럽트(interrupt) 방법으로 스레드를 멈춰달라고 요청해야함 작업을 설계할 때, 인터럽트를 받으면 작업을 모두 정리하고 종료하도록 해야함 작업, 스레드가 스스로 멈출 수 있도록 구성해야함 이번 장에는 작업이나 서비스가 취소 요청에 잘 반응하도록 하는 방법을 알아본다. 작업 중단 취소 가능한 작업 👉 외부에서 해당 작업을 임의 시점에 종료 상태에 이르도록 할 수 있는 작업 언제 이런게 필요한가? 사용자 취소 요청: 취소 버튼 클릭 등 시간 제한 작업: 제한 시간 이후에는 취소 애플리케이션 이벤트: 원하는 결과..
작업(task) 👉 추상적, 명확하게 구분된 업무 단위 애플리케이션 요구 사항을 작업 단위로 분할하면 프로그램 구조 간결 트랜잭션 범위 지정으로 오류 효과적 대응 작업 실행의 병렬성 극대화 스레드에서 작업 실행 작업의 범위를 어디까지로 할 건가 정해야한다. 완전히 독립적인 동작 👉 병렬성 보장을 위함 작업 스케줄링, 부하 분산(load balancing)을 하려면 작업 단위를 충분히 작게 구성 작업을 순차적으로 실행 가장 간단한 방법, 단일 스레드에서 작업 목록을 순차적 실행 작업마다 스레드를 직접 생성 작업 요청 마다 스레드를 생성한다. 다음과 같은 결과 작업 처리하는 기능이 메인 스레드와 분리 👉 서버의 응답 속도 🆙 동시에 여러 작업을 병렬로 처리할 수 있다 👉 서버의 처리 속도 🆙 프로그램이 동시..
자바 기본 라이브러리를 보면 병렬 프로그램 작성 시 필요한 여러 가지 동기화 도구가 마련되어있다. 스레드 안전한 컬렉션 클래스 동시 동작 스레드 간 작업 조율하는 동기화 클래스 동기화된 컬렉션 클래스 Vector, Hashtable, Collections.synchronizedXxx 스레드 안정성 확보 방법 👉🏻 클래스 내부에 캡슐화 해 내부 값을 한 번에 한 스레드만 사용할 수 있도록 제어 동기화된 컬렉션 클래스의 문제점 클라이언트 코드에서 두 개 이상의 연산을 묶어서 사용하는 경우 반복, 컬렉션 내부의 모든 항목을 차례로 가져다 사용 이동, 특정한 순서에 맞춰 지금 항목의 다음 항목 위치로 이동 없는 경우에만 추가하는 기능 개별 연산에 대한 스레드 안전은 지켜주지만, 그 연산을 조합한 복합 연산은 적..