非同期 【asynchronous】 アシンクロナス
非同期通信/非同期転送 (asynchronous communication/transmission)
通信を行う機器間でデータや信号の送信と受信のタイミングを合わせる動作や仕組みを用いずに通信することを非同期通信という。
コンピュータと周辺機器などを繋ぐシリアル通信などの場合、伝送路に一定間隔の周期を刻むクロック信号を流し、これに合わせて信号を送受信する方式を同期通信という。非同期通信はこのような仕組みを用いないものの総称で、例えば信号自体に通信の開始や終了を意味する符号(スタートビット/ストップビット)を付け足して送信し、受信側がこれを監視して信号を受け取る方式などが用いられる。
また、ソフトウェア間のデータの送受信などに関して非同期通信という場合は、送信や受信の処理を他の処理から独立して並行に行う「非同期処理による通信」を指すことが多い。
非同期処理/非同期実行 (asynchronous execution/processing)
コンピュータプログラムの実行制御の手法の一つで、あるプログラムが別のプログラムを呼び出したり、プログラム内で関数やサブルーチンなどを呼び出す際に、呼び出し側が呼び出し先の完了や応答を待たずに次の処理に進む方式。
同期処理の場合はサブルーチンなどを呼び出すとその処理が終わり結果が返ってくるまで呼び出し側の実行は一時停止して待機状態となるが、非同期処理では呼び出し側は止まらずに次の処理に進む。呼び出されたサブルーチンとは並行して同時に実行される。
呼び出し側が結果を受け取る必要がある場合には、完了時に呼び出す関数などをサブルーチン側に引数などの形で渡しておく。このような呼び出し側をサブルーチン側が「呼び返す」ための関数などのことを「コールバック関数」(callback function)という。
(2018.12.27更新)