본문 바로가기
개발노트/Kotlin

내일배움캠프 2주차 코틀린기초 5일차

by 시계속세상은아직돌아가는중 2023. 7. 21.

1. 비동기 프로그래밍(Asynchronous Programming)

 

순차적으로 프로그램을 작동시키는 것을 동기적 프로그래밍이라 한다.

이런 방식의 작업은 순차적으로 수행하기 때문에 앞선 작업에 영향을 받으며, 작업이 끝나지 않는다면 뒤의 작업을 수행할 수 없다. 그렇다면 비동기 프로그래밍으로 한다면, 앞선 작업과 별개로 다른 작업을 실행할 수 있도록 한다.

 

2. 쓰레드(Thread) : 프로그램은 하나의 메인 쓰레드(실행흐름)가 존재

본래 영어 단의 뜻은 '실(바느질할 떄 사용하는),가는 선'등의 뜻을 가지며 프로그래밍에서는 실행되는 흐름을 말한다

 

코틀린에서는 thread키워드로 쓰레드를 생성할 수 있다.

이렇게 생성된 쓰레드는 비동기적 작업을 실행할 때 사용된다.

 

Thread키워드를 사용하여 비동기적 프로그래밍이 실행되었을 때 먼저 자원이 할당되는 쓰레드가 실행이된다.

 

쓰레드 1

쓰레드 2

 

가 존재한다면 실행 결과는

 

먼저 메모리에 접근한 쓰레드

이후 쓰레드

 

즉 쓰레드 1과 쓰레드2는 순차적으로 실행되지 않고 1,2 혹은 2,1식의 랜덤성이 발생한다.

 

2. 코루틴(coroutine)

co-routine으로 나눠서 읽어서 분해하면 이 개념에 대해 이해하기 편하다.

흔히 영어권에서 co는 협동을 의미하는데(Cooperative. Co-op라 부름) 이걸 합친 단어라고 생각하면 된다.

코루틴은 영어 단어처럼 협동해서 루팅 즉 실행을 진행한다.

 

코루틴은 쓰레드보다 경량화된 비동기적 프로그래밍이 가능하다.

전문지식이 없어도 사용하기 편하며 안정적이게 사용가능하다.

구글에서 적극 권장하는 프로그래밍이다.