syncflow

명령(instruction)이 적재되면, 순서대로 실행하는 과정. 명령이 흐르는 동안은 끼어들 수 없다.

syncflow control

명령의 실행될 위치를 변경. JUMP 명령의 적재는 끝난 상태고, ⇒ 메모리의 값에 따라, 분기된다.

설계 (오브젝트 책)

코드를 배치하는 일

Blocking

명령이 실행되는 동안, 다른 일을 할 수 없음. syncflow 에 들어가면, block 된다.

Non-Blocking

원래 non-blocking 은 없다. syncflow 는 멈출 수 없으므로.. syncflow 를 짧게 만들고, 다른 thread 에 다른 syncflow 를 위임한다. syncflow 가 납득할만한 시간내에 종료하면, non-blocking 으로 본다.

Main Thread

주요 작업을 하는 쓰레드를 대부분 메인쓰레드라고 부르고, 메인쓰레드는 빨리 풀리길 원한다. OS 가 점유하길 원함.

병행성

syncflow 를 다른 thread로 넘겨서, 동시 작업을 수행하는 행위

Callback

어떻게 다른 thread 의 syncflow 가 끝났는지를 판단할까? syncflow 사이 사이, 동기화 loop 사이에 event loop 이 돈다. 실제 main thread 의 job 은 종료되지 않고, event loop 에서 다른 thread 의 job 이 끝나길 기다린다.

Sync/Async

Async 단점