💡동시성과 병렬성에 대하여 학습한 내용을 기록하였습니다.동시성(Concurrency)여러 작업을 실행할 수 있는 능력을 의미하며, 실제로는 한 번의 하나의 작업을 수행하더라도 작업 간 빠르게 전환함으로써 동시에 여러 작업이 진행되는 것처럼 보이게 합니다.CPU가 여러 작업을 짧은 시간 간격으로 번갈아가며 실행하기 때문에, 마치 여러 작업이 동시에 수행되는 것처럼 보입니다.특징프로세스 간 빠른 전환으로 CPU 자원을 최대한 활용할 수 있습니다.하지만 여러 작업이 같은 자원에 접근할 때 데이터 경합 문제 발생이 있을 수 있으며, 이를 해결하기 위한 동기화가 필요합니다.단일 코어동시성은 하드웨어적으로 병렬 처리가 지원되지 않는 단일 코어에서도 구현 가능합니다.[Core] : CPU에 내장된 처리회로로 명령어..
💡동기, 비동기의 차이에 대해서 이해하고 안드로이드에서 Thread와 Handler가 어떻게 동작하는지 정리하였습니다. Synchronous vs Asynchronous동기와 비동기는 작업의 처리 방식을 나타내는 개념으로, 작업의 실행 순서와 대기 방식에서 차이가 있습니다.동기(Synchronous)동기적 처리는 작업이 직렬적으로 처리되며, 하나의 작업이 끝날 때까지 다음 작업을 기다리는 방식입니다.현재 실행 중인 작업이 완료될 때까지 다른 작업을 수행할 수 없으며, 결과가 즉시 반환됩니다.호출한 코드가 끝날 때까지 대기 상태가 되며, 순차적인 처리로 로직이 단순합니다.fun synchronousExample() { println("작업 시작") // 동기적으로 데이터를 가져옴 (예:..
콘보이 현상(convoy effect) 콘보이 현상이란 작업 시간이 긴 프로세스가 먼저 큐에 도착해서 다른 프로세스의 실행 시간이 전부 늦춰져 효율이 떨어지는 현상입니다. FCFS(first- come firts served) 스케줄링은 비선점으로, 순차적으로 먼저 큐에 들어온 작업부터 실행하므로 콘보이 현상이 발생합니다. 선점형 스케줄링과 비선점형 스케줄링 선점형은 하나의 프로세스가 다른 프로세스 대신에 CPU를 차지할 수 있음을 말하고, 비선점형은 하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없음을 말합니다. 동기와 비동기 동기는 순차적, 직렬적으로 테스크를 수행하고, 비동기는 병렬적으로 테스크를 수행합니다. 동기(synchronous)는 서버에 데이터를 요청하고 데이터가 응답..