2012-04-11 2 views
16

동기 및 비동기 통신이라는 용어를 이해하려고했지만 다소 혼란스러워집니다. 나는 this에 약간을 파내려고했지만 여전히 혼란이있다. 내 질문은 다음과 같습니다 :동기 및 비동기 통신이 정확히 작동하는 방법

1. 동기 및 비동기 통신은 어떻게 작동합니까? 또한 위에서 언급 한 비동기 통신에 사용되는 신호는 무엇입니까?

2. 동기 및 비동기 프로세스는 어떻게 작동합니까?

예를 들어 설명하면 도움이 될 것입니다.

사과는 매우 간단한 질문입니다. 나는 프로그래밍에 초보적이다. 당신의 답변이 도움이 되길 바랍니다. 미리 감사드립니다 !!!!

답변

75

전화로 누군가에게 전화하는 것은 synchronos입니다. 메일 당 그와 대화하는 것은 비동기 적입니다.


동기

내가 전화로 전화하면 데리러 때까지, 당신의 번호와 WAIT 전화를 겁니다. 그런 다음 당신은 무언가를 말하고 바로 그 순간에 당신의 말을 듣습니다. 당신이 끝내면, 나는 당신에게 데이터를 보내고 (당신에게 말하기), 같은 순간에 당신은 그것들을 받는다. 우리 의사 소통의 끝에서 "전달 끝"(안녕히 가세요)이라고 말하면서 다른 사람은 "알콜 중독자"(안녕히 가세요)라고 말하면서 둘 다 울립니다.


비동기

난 당신에게 편지 쓰기. 나는 그것을 우체국에 넣었고, 그것은 당신에게 보내질 것입니다. 그때까지 나는 기다리지 않겠다.. 나는 많은 다른 것들을한다. 그런 다음 편지를받습니다. 당신은 아직도 많은 다른 것들을하는 동안 그것을 읽습니다. 그럼 당신은 나에게 답을 쓰고 나에게 보내. 그 모든 것들에 나는 관련되어 있지 않습니다. 다음날 시스템 (우편 배달부)에서 (동기식) 메시지 (신호)를받습니다. 그것은 (그가) 말합니다 : "여기 당신을위한 메시지입니다." 또는 5 분마다받은 편지함을 폴링하여 새 편지가 있는지 확인할 수 있습니다. 그런 다음 다른 작업을 일시 중지하고 편지를 받고 답변을 읽습니다. 그런 다음이 대답에 따라 뭔가를합니다. 그러나 이것은 당신이 알아 차릴 수없는 것들입니다. 왜냐하면 당신이 비동기식 대답으로하는 일에 개입하지 않기 때문입니다.

+1

좋은 비유! +1 –

+1

분명히 설명해 주셔서 감사합니다 !!!! – Shash

+1

이것에 감사 드리며, 실제로 차이점을 이해하는데 도움이 되었습니까? – user1189352

14

동기 코드는 메시지를 보내고 함수 등을 호출하고 응답이나 반환 값 등이 도착할 때까지 차단됩니다.

비동기 코드가 함수를 호출/메시지를 전송 한 후 실행 계속, 당신은 일반적으로 답변이 도착했을 때 실행하는 콜백 함수에 대한 참조를 전달 (일 몇 년 동안, 시간에 일어날 수있는) 당신의 그 동안에는 주 스레드가 계속됩니다.

관련 문제