マルチスレッドなしの指定

プログラムのコンパイル時にマルチスレッドコンパイラ指令を指定しないと、非マルチスレッドプログラムになります。

この場合は、システム作業領域は静的に割り当てられ、競合の対象となります。この方法には、呼び出しの高速化、マルチスレッド間でのスタックの有効利用など、いくつかの利点がありますが、非マルチスレッドプログラムで、確実に一度に 1 つのスレッドのみが実行されるかどうかはアプリケーションによって異なります。ただし、呼び出し元のプログラムの暗黙的なロジックにより、非マルチスレッドプログラムで、一度に 1 つのスレッドのみ実行するようにできます。たとえば、1 つのスレッドが非マルチスレッドプログラムを呼び出すようにアプリケーションを設計します。または、呼び出し先のプログラムが実行される直前に呼び出し元のプログラム内で同期プリミティブ (ミューテックスなど) の 1 つをロックし、呼び出し先のプログラムが戻る前にそのロックを解放します。