1. 비동기 프로그래밍(Asynchronous Programming)
순차적으로 프로그램을 작동시키는 것을 동기적 프로그래밍이라 한다.
이런 방식의 작업은 순차적으로 수행하기 때문에 앞선 작업에 영향을 받으며, 작업이 끝나지 않는다면 뒤의 작업을 수행할 수 없다. 그렇다면 비동기 프로그래밍으로 한다면, 앞선 작업과 별개로 다른 작업을 실행할 수 있도록 한다.
2. 쓰레드(Thread) : 프로그램은 하나의 메인 쓰레드(실행흐름)가 존재
본래 영어 단의 뜻은 '실(바느질할 떄 사용하는),가는 선'등의 뜻을 가지며 프로그래밍에서는 실행되는 흐름을 말한다
코틀린에서는 thread키워드로 쓰레드를 생성할 수 있다.
이렇게 생성된 쓰레드는 비동기적 작업을 실행할 때 사용된다.
Thread키워드를 사용하여 비동기적 프로그래밍이 실행되었을 때 먼저 자원이 할당되는 쓰레드가 실행이된다.
쓰레드 1
쓰레드 2
가 존재한다면 실행 결과는
먼저 메모리에 접근한 쓰레드
이후 쓰레드
즉 쓰레드 1과 쓰레드2는 순차적으로 실행되지 않고 1,2 혹은 2,1식의 랜덤성이 발생한다.
2. 코루틴(coroutine)
co-routine으로 나눠서 읽어서 분해하면 이 개념에 대해 이해하기 편하다.
흔히 영어권에서 co는 협동을 의미하는데(Cooperative. Co-op라 부름) 이걸 합친 단어라고 생각하면 된다.
코루틴은 영어 단어처럼 협동해서 루팅 즉 실행을 진행한다.
코루틴은 쓰레드보다 경량화된 비동기적 프로그래밍이 가능하다.
전문지식이 없어도 사용하기 편하며 안정적이게 사용가능하다.
구글에서 적극 권장하는 프로그래밍이다.
'개발노트 > Kotlin' 카테고리의 다른 글
내일배움캠프 3주차 2일 코틀린심화 팀프로젝트 (0) | 2023.07.25 |
---|---|
내일배움캠프 3주차 1일 코틀린 심화-알고리즘문제 (0) | 2023.07.24 |
내일배움캠프 2주차 4일 코틀린기초 과제 수정 및 ++ (0) | 2023.07.20 |
내일배움캠프 코틀린기초 2주차 3일 과제수행 계산기 (0) | 2023.07.19 |
내일배움캠프 2주차 2일 코틀린 기초 (0) | 2023.07.18 |