Dart는 Single Thread 언어! 비동기는 어떻게?
·
Dart
0️⃣ Single Thread Dart는 싱글 스레드 언어라는 말, 많이 들어보았을 것이다. Javscript도 싱글 스레드 언어이기 때문에 두 언어가 비슷하게 동작할 것이라고 보통 예상하지만 실상은 전혀 다르다. 우선 싱글 스레드가 무엇인지에 대해서부터 알아보자. (프로세스와 스레드의 개념에 대해서도 이해하고 있어야 하므로 아래 글을 먼저 읽고 와서 다시 보자!) [얼레벌레 공부하는 CS] 프로세스와 스레드0️⃣ 프로세스란?프로세스는 현재 실행중인 프로그램을 의미한다. 프로그램 그 자체는 보조기억장치에 보존되어있는 데이터지만 이 프로그램을 RAM에 적재하여 실행하는 순간 프로세스라고 부kkevido.tistory.com 위 글을 다시 읽고 와서 스레드가 무엇인지 다시 정의해보자면,프로세스가 할당 받..
Dart가 효율적으로 메모리를 관리하는 방법, DartVM
·
Dart
0️⃣ DartVM을 이해하기 전에 먼저 알아야 할 지식들 DartVM, 즉 Dart Virtual Machine에 대해서 제대로 알기 위해선 약간의 사전지식들이 필요하다. 기본적인 OS의 메모리 관리 개념과, Flutter의 release모드, debug모드를 관리하는 JIT,AOT 엔진에 대해 알아야 한다. 우선 Heap과 Stack Heap과 Stack에 대해서 알아야한다. 모르면 처음부터 이해가 안 된다. 작년에 CS 공부를 열심히 할 때 보다 이해하기 쉽게 정리해놓은 내용이 있으니 꼭 읽어보자. 특히 4번의 Heap영역이 지나치게 크다면? 이라는 항목은 DartVM을 이해하기 위해선 빼놓을 수 없다. 결국 핵심은 Heap 영역에서 이루어지는 GC이기 때문이다. [얼레벌레 공부하는 CS] Heap..
[얼레벌레 공부하는 CS] 프로세스와 스레드
·
CS
0️⃣ 프로세스란?프로세스는 현재 실행중인 프로그램을 의미한다. 프로그램 그 자체는 보조기억장치에 보존되어있는 데이터지만 이 프로그램을 RAM에 적재하여 실행하는 순간 프로세스라고 부른다.예를 들어 메모장이라는 프로그램은 우리가 실행하지 않는 이상 그저 프로그램으로 존재할 뿐이다. 더블클릭하여 실행하는 그 순간 프로세스가 되는 것이다. 이렇게 사용자가 보는 앞에서 실행되는 프로세스는 포그라운드 프로세스 (Foreground Process), 사용자가 보지 못하는 뒤에서 실행되는 프로세스는 백그라운드 프로세스(Background Process) 라고 부른다.1️⃣ PCB운영체제는 번갈아가면서 실행되는 프로세스의 실행 순서를 관리하고 CPU 등과 같은 자원을 배분하는데, 이를 위해 PCB를 이용한다. PCB..