PROFESSIONAL GAME CREATOR SCHOOL G学院 用語集

OFFICIAL SITEへ戻る

非同期処理

 非同期処理とはプログラミングにおける処理方法の一つです。
通常のプログラミングにおける実行時の処理は、ソースコードの命令語を先頭から順番に一つずつ実行します。上から順に実行していくので、1つの処理が終わるまで待ち、次の処理を行います。いわゆる順次処理です。
 一方で、非同期処理では異なる処理を行います。同期処理同様、コルーチンを先頭から順番に処理していきますが、1つの非同期処理が完了するのを待たずに次の処理を行います。例えば二つの処理がある状態では、一つの処理を一定量進めた後にストップし、もう一つの処理を同様に進めた後ストップし、最初にストップした処理を再開するということができます。したがって、これを繰り返すことで並列して複数の処理を実行することが可能となります。このように、非同期処理では同時に複数の処理を実行することになります。
 Unityのプログラミングにおけるソースコードで例を上げるならば、コルーチンがそれにあたります。上記のコードでは、Func1が終了した後Func2、Func3と実行されます。これらの関数を同時に実行するにはマルチスレッドを利用する必要があります。
//コルーチン
Public IEnumerator Func1(int num){
  Debut.Log(“Start CoroutineでFunc1関数が実行されました。”);
  //~以下コルーチンの処理(大抵はループ処理です)
  yield return new WaitForSeconds(指定秒数);
}
Public IEnumerator Func2(int num){
  Debut.Log(“Start CoroutineでFunc2関数が実行されました。”);
  //~以下コルーチンの処理(大抵はループ処理です)
  yield return new WaitForSeconds(指定秒数);
}
//メインループ
StartCoroutine(“Func1”);
StartCoroutine(“Func2”);
Debug.Log(“メインループでDebug.Log関数が実行されました。”);

上記の場合、メインループでコルーチンが呼び出された後、直ぐにDebug.Logを実行して、メインループでのメッセージを表示します。一方でそれとは、関係なくコルーチンによりFunc1関数、Func2関数内でコルーチンでのメッセージを表示し、コルーチン処理も並行して行われます。
 このように平行して処理が進みます。

用語集一覧へ戻る