-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Week 3] 자료 제출 #11
[Week 3] 자료 제출 #11
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
고생하셨습니다!🙇
|
||
### 코루틴? | ||
|
||
**진입 지점과 반환 지점을 여러개 가질 수 있어서** 서브 루틴의 임의 지점에서 동작을 중단하고, 이후 다시 해당 지점에서부터 실행을 재개할 수 있음 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
전 그냥 중단 가능하다고만 설명했는데, 진입 지점과 반환 지점이 여러개라는 말이 훨씬 더 와닿네요 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
그러게요 join을 사용한 일시 정지의 느낌보다는 진입/반환의 워딩이 좀 더 와닿아요
|
||
함수 내에서 다른 함수를 호출할 때, 지금까지 연산했던 결과를 넘겨주고, 호출한 함수의 동작이 끝나면 재개할 지점을 넘겨줘야됨 == sm (state machine) | ||
|
||
```kotlin |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
컴파일 된 코드 보여주는거 좋네용
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
|
||
### 코루틴? | ||
|
||
**진입 지점과 반환 지점을 여러개 가질 수 있어서** 서브 루틴의 임의 지점에서 동작을 중단하고, 이후 다시 해당 지점에서부터 실행을 재개할 수 있음 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
그러게요 join을 사용한 일시 정지의 느낌보다는 진입/반환의 워딩이 좀 더 와닿아요
### Suspend 함수의 중단점은 어떤 기준으로 생기는 걸까? | ||
|
||
1. suspend 함수를 호출할 때 | ||
2. 네트워크 요청, I/O 작업 등이 일어날 때 | ||
3. 코루틴 컨텍스트가 변경될 때 | ||
|
||
등 | ||
|
||
suspend 키워드를 붙인다고 모두 중단하는 것이 아니라, 중단 “가능”할 뿐 | ||
|
||
ex) 단순 연산만 반복하는 함수는 자동으로 중단하지 않음 → delay, yield 등을 이용해서 명시적으로 중단 지점을 사용해야됨 | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suspend에 대한 중요 내용을 작성해주셨네요! 감사함다!
val task2 = CompletableFuture.supplyAsync { nonSuspendIoTask2() } | ||
val task3 = CompletableFuture.supplyAsync { nonSuspendIoTask3() } | ||
|
||
val allTasks = CompletableFuture.allOf(task1, task2, task3) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
여기서 join 한번 써도 될거에유
📌 Study
📚 Reference
https://june0122.github.io/2021/06/09/coroutines-under-the-hood/
https://www.youtube.com/watch?v=YrrUCSi72E8&t=110s&ab_channel=JetBrains