개발할 때 자주 접하게 되는 용어 중 하나입니다.
너 동기화 됐니? 비동기식입니까?
처음 개발했을 때 두 단어의 의미를 정확히 말로 설명할 수 없었습니다. (물리적으로 알고 있었다)
지금도 정확히 말씀드리기는 어려우니 정리해보자.
1. 동시성
하계올림픽을 보면 싱크로나이즈라는 종목이 있다.
모르시는 분들을 위해 아래 사진처럼 여러 명이 물속에 모여서 하는 행사입니다.

그런 점에서 싱크로니시티라는 단어 자체가 두 감독 사이에 뭔가 다른 점이 있다는 의미이기도 하다.
프로그래밍의 세계로 돌아가서 작업 흐름 A와 작업 흐름 B가 있다고 가정해 봅시다.
여기서 동시성은 A가 B에게 요청을 하면 B가 요청 결과를 제공한다는 것을 의미합니다.
이때 A가 할 일은 B에게 보낸 요청의 결과 값을 받아 원래의 작업 흐름으로 돌아가는 것입니다.말한다
간단한 예를 들자면,
레스토랑에서 웨이터(A)가 셰프(B)에게 식사 주문을 합니다.
웨이터는 요리사에게 요청을 하고 요리사는 요청 결과에 따라 음식을 준비합니다.
이 시점에서 서버는 요리사로부터 음식을 받은 후에만 다른 작업을 수행합니다. (동기)
워크플로에서 요청 후 결과 값을 반환하도록 동기화가 보장됩니다.
그 결과는 다음 작업을 수행할 때 사용할 수 있다는 사실이 기능.
그러나 결과는 보장되어야 합니다. 결과를 기다리는 동안 다음 일을 할 수 없다는 사실있다
2. 비동기성
위의 예에서 서버(A)가 요리사(B)에게 음식을 요청하고 음식을 기다리지 않고 다른 작업을 보는 경우 이는 비동기식입니다.
비동기 작업 요청 결과가 다음 작업에 영향을 미치지 않을 때 사용너는 할 수있을 것이다.
셰프가 요리를 마친 후 종을 울리고 웨이터를 다시 불러 음식을 배달하는 것은 비동기식입니다. 다시 전화의 행위이다
서로 유기적으로 움직일 때 식당이 더 효율적으로 움직입니다. 나는 그것을 비동기의 장점으로 본다.
다만, 동기화와 달리 작업 흐름이 순차적이지 않기 때문에 결과 값의 순서가 보장되지 않고 작업이 왜곡될 수 있습니다.
다음으로 알아야 할 차단/차단 해제 개념을 추가로 정리하겠습니다. 예: 동기식/비동기식.
다음 20000

