Thread
-
System Structure & Program Execution CPU = Memory에있는 instruction을 실행하는 것 (항상 메모리와 상호작용) *instruction: 컴퓨터에게 일을 시키는 단위로서, 컴퓨터가 알아들을 수 있는 기계어로 이루어진 명령어 - 입출력 같은 요청을 cpu에서 필요로 하면 cpu는 메모리와만 상호작용하므로 직접 디스크나 입출력에 접근하는게 아니라 - 접근 요청을 시키면 디바이스 컨트롤러는 로컬 버퍼로 값을 전달한다. - cpu는 성능이 매우 빠르고 IO 수행하는 것은 매우 느리기 때문에 cpu가 마냥 놀고만 있을 수 없기 때문에 다른 메모리의 인터럽트를 실행 CPU 내부 - interrupt line = 외부 디바이스나 이벤트에서 CPU의 주의를 끌고 중단된 작업..
[OS] System Structure & Program Execution , ProcessSystem Structure & Program Execution CPU = Memory에있는 instruction을 실행하는 것 (항상 메모리와 상호작용) *instruction: 컴퓨터에게 일을 시키는 단위로서, 컴퓨터가 알아들을 수 있는 기계어로 이루어진 명령어 - 입출력 같은 요청을 cpu에서 필요로 하면 cpu는 메모리와만 상호작용하므로 직접 디스크나 입출력에 접근하는게 아니라 - 접근 요청을 시키면 디바이스 컨트롤러는 로컬 버퍼로 값을 전달한다. - cpu는 성능이 매우 빠르고 IO 수행하는 것은 매우 느리기 때문에 cpu가 마냥 놀고만 있을 수 없기 때문에 다른 메모리의 인터럽트를 실행 CPU 내부 - interrupt line = 외부 디바이스나 이벤트에서 CPU의 주의를 끌고 중단된 작업..
2023.10.07 -
안드로이드의 UI 동작 안드로이드는 기본적으로 Main Thread (or UI Thread) 하나만으로 구성되는 싱글 쓰레드 모델로 동작한다. 🤔싱글 쓰레드 모델인 이유 만약 멀티 쓰레드 환경이라면, 여러 쓰레드에서 TextView 의 텍스트를 변경하는 상황이 발생하고 어떤 결과가 나타날 지 미지수이기 때문이다. 따라서 동작의 무결성을 보장하기 위해 타 쓰레드에서는 UI 를 건드릴 수 없고, 오로지 메인 쓰레드에서만 UI 관련 동작을 할 수 있게끔 하는 것이다. ✍🏼싱글 쓰레드 모델에서 지켜야할 포인트들 1. 메인 쓰레드 (UI 스레드) 를 블로킹해서는 안 됨 → 메인 쓰레드를 블로킹한다는 뜻은, 사용자에게 보여지는 UI 동작을 멈춘다는 뜻이다. 메인 쓰레드가 블로킹되어 UI 동작이 멈추게 되면, 이는..
[android] Handler & Looper안드로이드의 UI 동작 안드로이드는 기본적으로 Main Thread (or UI Thread) 하나만으로 구성되는 싱글 쓰레드 모델로 동작한다. 🤔싱글 쓰레드 모델인 이유 만약 멀티 쓰레드 환경이라면, 여러 쓰레드에서 TextView 의 텍스트를 변경하는 상황이 발생하고 어떤 결과가 나타날 지 미지수이기 때문이다. 따라서 동작의 무결성을 보장하기 위해 타 쓰레드에서는 UI 를 건드릴 수 없고, 오로지 메인 쓰레드에서만 UI 관련 동작을 할 수 있게끔 하는 것이다. ✍🏼싱글 쓰레드 모델에서 지켜야할 포인트들 1. 메인 쓰레드 (UI 스레드) 를 블로킹해서는 안 됨 → 메인 쓰레드를 블로킹한다는 뜻은, 사용자에게 보여지는 UI 동작을 멈춘다는 뜻이다. 메인 쓰레드가 블로킹되어 UI 동작이 멈추게 되면, 이는..
2023.07.24 -
프로젝트를 진행하다보면 비동기 처리를 위해 사용되는 라이브러리들이 많은데 비동기처리의 주 "코루틴" 에 대해서 공부하다보니, thread? coroutine? 비슷한 작동방식이 아닌가라는 생각이 들었다. 그래서 쓰레드와 코루틴이 정확히 무엇인지 비교를 해보려고 한다. 먼저 Thread와 Coroutine은 모두 동시성 프로그래밍을 위한 기술이다. 동시성과 병렬성(Concurrency & Parallelism) 동시성 (Concurrency) 말 그대로 동시에 여러 작업을 수행하는 것 Task1과 Task2를 시분할(Interleaving) 기법을 활용하여 동시에 실행되는 것처럼 번갈아가며 수행한다. 수행시간은 Task1이 걸리는 시간 10분 + Task2가 걸리는 시간 10분 = 총 20분이 소요된다. ..
[Android] Thread와 Coroutine의 차이프로젝트를 진행하다보면 비동기 처리를 위해 사용되는 라이브러리들이 많은데 비동기처리의 주 "코루틴" 에 대해서 공부하다보니, thread? coroutine? 비슷한 작동방식이 아닌가라는 생각이 들었다. 그래서 쓰레드와 코루틴이 정확히 무엇인지 비교를 해보려고 한다. 먼저 Thread와 Coroutine은 모두 동시성 프로그래밍을 위한 기술이다. 동시성과 병렬성(Concurrency & Parallelism) 동시성 (Concurrency) 말 그대로 동시에 여러 작업을 수행하는 것 Task1과 Task2를 시분할(Interleaving) 기법을 활용하여 동시에 실행되는 것처럼 번갈아가며 수행한다. 수행시간은 Task1이 걸리는 시간 10분 + Task2가 걸리는 시간 10분 = 총 20분이 소요된다. ..
2023.07.04