マルチスレッドで関数を実行した場合、同時に同じポート(ビット)にアクセスするとどうなりますか?
対象製品型式: API-DIO(WDM) 及び API-DIO(98/PC)
関連情報:
特に問題ありません。
但し、まったく同時に実行される訳ではなく、どちらか一方のスレッドが先に実行されることになります。
注意しなければならないのは、スレッド内でシーケンスがあるような場合です。
例:
スレッド1:ポート0に対し、00H、01H、02H・・・、FFHを連続して出力
スレッド2:ポート0に対し、00Hを出力
上記スレッドが同時に実行された場合、各関数の実行タイミングはOSによって制御
されますので、スレッド1の出力が連続して行われている最中に、スレッド2が割り
込み、値の連続性が失われる可能性があります。
このような状況(同一ポート(ビット)に対する複数スレッドからのアクセス)が発生するような作りになる場合に
は、アプリケーション側でCriticalSectionの機能等を使って同期を取るようにして下さい。