同期通信、非同期通信
■同期通信
同期通信は通信処理が完了するまで次の処理に進まない通信方法です。
ブロッキング通信とも呼ばれています。
●メリット、デメリット
メリット:
必ず通信の結果が出てから次の処理へ移行する
通信の送受信した順番がずれることがない
技術コストが低い
デメリット:
処理が終了するまで先へ進めないためフリーズしたように感じる
●GUIアプリとは相性が悪い
同期通信はCUIでは特に大きな問題はありませんが、
一部のGUIでは通信処理が終わるまで先に進まないことから非常に相性が悪いです。
なぜならゲームなどの一定周期ごとに画面を更新する必要がある
GUIアプリで同期通信を行うと画面が更新されず、
利用者からフリーズしたと勘違いされます。
GUIで通信を行う場合は同期通信ではなく、「非同期通信」が利用されています。
■非同期通信
非同期通信とは、通信を行った際に送受信の完了を待たずに他の処理を開始する通信方法のことです。
ノンブロッキング通信と呼ばれています。
●メリット、デメリット
メリット:
送受信が完了していなくとも別の処理を実行することができる
デメリット:
通信の送信順番がずれることがある
技術コストが高い
●非同期通信の方法
非同期通信を行う方法は基本的には通信APIで同期非同期を
選択できるようになっているのでそちらを利用して非同期通信を行います。
別の方法として、同期通信の送受信を許可するたびにスレッドを作成して、
処理を行うやり方もあります。