21

同期通信と非同期通信という用語を理解しようとしていましたが、少し混乱しています。これについて少し掘り下げてみましたが、まだ混乱があります。私の質問は次のとおりです。

1.同期通信と非同期通信はどのように機能しますか? また、上記を参照して、非同期通信に使用される信号は何ですか。

2.同期プロセスと非同期プロセスはどのように機能しますか?

これを説明する例は役に立ちます。

これが非常に単純な質問である場合は、お詫び申し上げます。私はプログラミングが初めてです。あなたの答えが私に役立つことを願っています。前もって感謝します!!!!

4

2 に答える 2

99

電話で誰かに電話することは同期です。彼とのメールによる通信は非同期です。


同期

電話であなたに電話するとき、私はあなたの番号をダイヤルし、あなたが出るまで待ちます。それからあなたが何か言うと、まさにその瞬間に私はあなたの話を聞きます。あなたが終わったら、私はあなたにデータを送ります(あなたに話しかけます)と同時に、あなたはそれらを受け取ります(私の話を聞いてください). 通信の終わりに、一方が「END OF TRANSMISSION」(さようなら)と言い、もう一方が「Acknoledged」(さようなら)と言って、両方が鳴ります。


非同期

私はあなたに手紙を書きます。私はそれを郵便局に入れました、そしてそれはあなたに送られます。その間、私は待ちません。他にもいろいろやってます。その後、手紙を受け取ります。あなたはそれを読んでいますが、私はまだ他の多くのことをしています。それからあなたは私に答えを書いて私に送ってください。それらすべてに私は関与していません。翌日、システム (郵便配達員) から (同期) メッセージ (シグナル) を受け取ります。それ(彼)は言う:「これはあなたへのメッセージです」. または、5 分ごとに受信トレイをポーリングして、新しい手紙があるかどうかを確認することもできます。それから私は他の仕事を一時停止し、あなたの手紙を受け取り、あなたの答えを読みます。次に、この答えに従って何かをします。しかし、これはあなたが気付かないことです。なぜなら、あなたは私があなたの非同期回答で行うことに関与していないからです。

于 2012-04-11T08:52:53.850 に答える
18

同期コードはメッセージを送信し、関数などを呼び出し、応答や戻り値などが到着するまでブロックされます。

非同期コードはメッセージの送信/関数の呼び出し後も実行を継続します。通常、応答が到着したときに実行されるコールバック関数への参照を渡します(1時間、数日、数年で発生する可能性があります)。その間、メインスレッドは継続します。 。

于 2012-04-11T08:51:11.620 に答える