ruinak_4127.log
로그인
ruinak_4127.log
로그인
Dart 비동기 스레드 개념
Ruinak
·
2021년 9월 23일
팔로우
0
dart
0
Dart
목록 보기
10/11
Dart의 비동기
Dart는 단일 스레드를 사용합니다.
비동기는 일의 순서가 없습니다.
비동기를 사용하면 비동기 처리가 어렵습니다.
결과 부분을 그리는데 5초가 소요되므로 사용자는 대기시간이 발생합니다.
이 간극을 줄이기 위해 결과부분을 요청해놓고 먼저 그릴수 있는 검정색 그림을 응답이 오기를 기다리는 동안 그리는 것입니다.
스레드
스레드를 Time Slicing이라 합니다.
Time Slicing은 시간을 자르는 것입니다.
위 그림에서 벽을 색칠할 때 동시에 색칠하는 방법이 있습니다.
위 그림은 1초라는 시간을 Slicing해서 빨간색과 노란색을 왔다갔다(붓을 바꾸면)하면서 색칠하 것입니다.
1초라는 시간이 아니라 0.000001초에 한번씩 색칠하면 동시에 색칠하는 것처럼 보이게 됩니다.
붓을 바꾸는 시간을 Context Switching이라고 합니다.
스레드는 UX를 좋게하므로, 사용자는 동시에 색칠하는 것처럼 느껴지게 됩니다.
그림을 그리는 것에는 순서가 있습니다.
순서를 지키지 않으면 위 그림처럼 비행기 위에 집을 그릴 수도 있습니다.
애플리케이션에서는 그림 그리는 스레드는 1개입니다.
Promise(Future)
Dart는 단일 스레드를 사용합니다.
Dart는 main( )이 실행되는데 이 main은 스택입니다.
하드 디스크에 기록(I/O)을 하거나 Network에 연결하는 것은 시간이 오래 걸립니다.
시간이 오래걸려서 CPU가 놀게되면 Black이 걸립니다.
Dart는 이벤트루프를 이용해서 비동기를 처리합니다.
Ruinak
Nil Desperandum <절대 절망하지 마라>
팔로우
이전 포스트
Dart 상속
다음 포스트
Dart Future, Isolate
0개의 댓글
댓글 작성