SDLはスレッド、mutex、セマフォ、そして条件変数(condition variable)を生成する 関数群を提供します。
一般的に、マルチスレッドのプログラムを書く場合、並列アクセスや データの整合性について注意する必要があります。 ガイドラインには以下のものも含まれます:
独立したスレッドではSDLのビデオ、イベントの関数を呼ばない
独立したスレッドからはいかなるライブラリ関数も使用しない
独立したスレッドからメモリ管理を行わない
複数のスレッドからアクセスされる可能性があるグローバル変数はロックする
決してスレッドを終了させない。フラグをセットしてスレッドが終了するのを待つこと
コードの相互作用について考えられる全ての可能性を吟味すること
Note: MacOSでは、プリエンプティブスレッドのサポートがないため、SDLではスレッド機能を実装していません(MacOS Xにはこの問題はありません)。