일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 회고
- 스레드
- ReactiveProgramming
- Rxjava
- mockito
- Kotlin
- 코루틴
- 커스텀상태
- g 단위테스트
- 글또
- theming
- 안드로이드스튜디오
- 디자인패턴
- 안드로이드강좌
- 책
- viewmodel
- k8s
- Compose
- 알고리즘
- 알게되는
- Gradle
- Coroutine
- 테스트
- 자바
- android
- 병렬프로그래밍
- kotlin강좌
- 병럴프로그래밍
- 코틀린
- 안드로이드
- Today
- Total
목록분류 전체보기 (154)
선생님, 개발을 잘하고 싶어요.
안전성(safety)과 활동성(liveness)의 상관 관계 활동성에 문제가 되는 상황을 알아보자. 문제가 되는 사항을 미연에 방지하는 방법을 알아보자. 데드락 식사하는 철학자 문제 원형 테이블에 둘러 앉은 철학자 자기 왼쪽에 있는 젓가락을 집은 다음, 오른쪽 젓가락을 사용할 수 있을 때까지 기다린 후, 오른쪽 젓가락을 집어서 식사를 한다고 하자. 모든 철학자가 자기가 확보한 왼쪽 젓가락을 놓지 않고 오른쪽 젓가락을 기다리다가 식사를 하지 못하게됨 JVM은 데이터베이스 서버와 같이 데드락 상태를 추적하는 기능 ❌ 데드락은 시스템에 부하가 걸리는 최악의 상황에서 모습을 드러낸다. 락 순서에 의한 데드락 두 개의 스레드가 서로 다른 순서로 동일한 락을 확보하려 할 때 발생 같은 순서로 락을 확보하도록 돼 있..
모든 GUI 툴킷은 GUI 관련 작업이 모두 단일 스레드에서 일어나는 단일 스레드 서브시스템으로 구현돼 있다. 단일 스레드 서브시스템 👉 말 그대로, 하나의 스레드 위에서 동작하는 시스템 현실적으로 프로그램이 하나의 스레드만 사용하며 동작하는 건 말이 안되고, 작업 중 일부는 이벤트 스레드, 일부는 일반 애플리케이션 스레드에서 실행된다. 🤔 GUI를 그리는 안드로이드도 이러한 제약이 있다. 안드로이드에서 메인 스레드는 GUI에 접근하고 수정할 수 있는 유일한 스레드를 말하지만, 이 책에서 말하는 그런 역할을 하는 스레드는 이벤트 스레드다. GUI는 왜 단일 스레드로 동작하는가? 터치 이벤트 등 OS → App 방향 수정, 컴포넌트 배경색 설정 등 App → OS 방향 수정으로 하나의 GUI 컴포넌트를 두..
스레드 풀을 설정할 때 사용할 옵션 살피기 Executor를 사용하는 예시 보기 🤔 이미 RxJava, Kotlin coroutine과 같은 작업 관리를 위한 라이브러리를 사용하고 있는데 Executor 디테일을 알아둘 필요가 있을까? 작업과 실행 정책 간의 보이지 않는 연결 관계 일정한 조건을 갖춘 실행 정책이 필요한 작업 작업이 실행 정책에 의존성을 가진 경우가 있다. 의존성 있는 작업 이 경우 스레드 부족 데드락(thread starvation deadlock)이 발생할 수 있다. 이런 작업을 수행하는 경우에 실행 정책을 섬세하게 선택해야 한다. 스레드 한정 기법을 사용하는 작업 같은 스레드를 사용한다고 가정한 작업은, Executor가 단일 스레드로 동작하지 않을 때 스레드 안전성을 쉽게 잃는다...
자바는 실행 중인 스레드 강제 종료 지원 ❌ 강제 종료하면 공유 상태가 비정상적인 상태에 놓일 수 있음 공유 파일을 open 하고 작업하던 스레드를 강제 종료하면 누가 close 할 수 있나? 인터럽트(interrupt) 방법으로 스레드를 멈춰달라고 요청해야함 작업을 설계할 때, 인터럽트를 받으면 작업을 모두 정리하고 종료하도록 해야함 작업, 스레드가 스스로 멈출 수 있도록 구성해야함 이번 장에는 작업이나 서비스가 취소 요청에 잘 반응하도록 하는 방법을 알아본다. 작업 중단 취소 가능한 작업 👉 외부에서 해당 작업을 임의 시점에 종료 상태에 이르도록 할 수 있는 작업 언제 이런게 필요한가? 사용자 취소 요청: 취소 버튼 클릭 등 시간 제한 작업: 제한 시간 이후에는 취소 애플리케이션 이벤트: 원하는 결과..