개발노트/Kotlin

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

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

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

 

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

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

 

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

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

 

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

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

 

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

 

쓰레드 1

쓰레드 2

 

가 존재한다면 실행 결과는

 

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

이후 쓰레드

 

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

 

2. 코루틴(coroutine)

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

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

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

 

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

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

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