devmoa

코루틴(Coroutine)에 대하여

지마켓·2023년 6월 14일·00
코루틴Coroutine비동기멀티태스킹병행성Kotlin

AI 요약

Beta

이 글은 코루틴의 개념과 동작 방식에 대해 설명합니다. 코루틴은 1958년부터 존재해 온 개념으로, 코틀린뿐만 아니라 다양한 고급 프로그래밍 언어에서 지원됩니다.

코루틴은 '함께 동작하는 규칙적인 작업의 집합'을 의미하며, 위키피디아 정의에 따르면 '실행의 지연과 재개를 허용함으로써 비선점적 멀티태스킹을 위한 서브 루틴을 일반화한 컴퓨터 프로그램 구성요소'입니다. 비선점적 멀티태스킹은 하나의 프로세스가 CPU를 점유하면 다른 프로세스가 강제로 빼앗을 수 없는 방식이며, 이는 쓰레드의 선점형 멀티태스킹과 대조됩니다.

코루틴은 병행성(Concurrency)은 제공하지만 병렬성(Parallelism)은 제공하지 않습니다. 기존 선점형 비동기 처리의 코드 복잡성과 쓰레드 사용으로 인한 성능 저하 문제를 해결하기 위해 코루틴은 쓰레드 내에서 동작하는 작업 단위로서 Context를 오버라이드하며 실행됩니다.

이를 통해 쓰레드 Context switching 없이 여러 코루틴을 실행, 중단, 재개할 수 있어 메모리 사용량을 줄이고 개발자가 직접 작업을 스케줄링할 수 있게 합니다.

이 글이 궁금하신가요?

원문 블로그에서 전체 내용을 확인해 보세요

원문 읽으러 가기

AI 추천 연관 게시글

이 글과 관련된 다른 기술 블로그 글을 AI가 추천합니다