coroutines

아…. 이글을 쓰긴하지만… 나중에 상당히 많은 수정이 필요하다 생각된다… 코루틴이란? 가벼운 쓰레드? 경량쓰레드?….. 쓰레드도 이해하기 힘든데…. 하.. 나중에 이글을 보며 더 발전하게 되면 잘못 이해한 부분을 정확하게 알게되겠지 하며.. 글을 작성한다.

꼭한번 읽어보자

링크: 코틀린은 어껗게 작동하는가? 도창욱님 슬라이드 쉐어

Talk is cheap, Show me the code! 가 가장 기억에 남는다…..

코투린이란?

  • 기술적으로 중지 가능한 계산의 인스턴스
  • 일시 중단할수 있는 계산
  • 특정 스레드에 바인딩되지 않는다
  • 한 스레드에서 일시 중지하고 다른 스레드에서 재개 할수 있다.

시작부터 어렵다… 일단 코틀린 버전 1.3으로 셋팅 후 디펜던세를 추가해보자

dependency링크 : 클릭

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking

fun main(args : Array<String>) = runBlocking {


launch {
delay(1000)
println("start")
}

print("gogo + ")
delay(1000)



}

디펜던시 추가후 정상작동 확인 코드

  • runBloking : 코루틴을 생성 한 후 코루틴이 끝나고 그 결과 값을 반환할때까지 현재 쓰레드를 불록한다.
  • launch : 현재 스레드의 블록 없이 새 코루틴을 생성하고 Job을 반환한다.
  • delay : 현재 스레드를 블록하지 않고 현재 코투린을 지연시키는 함수
  • suspend : 현재 스레드의 블록 없이 코루틴의 실행을 일시 중지할수 있는 함수다. 따라서 정지 함수는 코루틴 내부에서 호출되어야 한다. 일반 코드에서 실행 불가! 함수는 suspend 수정자로 표시되어야 한다.

시간이 없다. 다행이다.. 나중에 더공부하자….

함수형 코틀린 [에이콘, 구진수 옮김] 참고