マルチスレッドの概念は、RTOSでもLinuxでもどこでも同じです。 違いは動作上の動作です。
私の質問は、組み込みの システムでマルチスレッドを学ぶにはどうすればいいですか?
私は、オンラインマテリアルを参考にしてマルチスレッドの概念を最初に習得し、理解することをお勧めします。
SemaphoreとMutexesを使用した同期メカニズムのようないくつかの高度なトピックについては、セマフォをいつ使用するのか、スレッド同期のためにmutexを使用するのかについての基本的な概念について学びます。
次に、いくつかの組み込みターゲットに移動し、uCOS-II/uCOS-IIIまたはFreeRTOSを使用していくつかのコードを試してみてください。
これらはPOSIXスレッドと同じですか?
いいえ、まったく同じではありません。POSIXスレッドライブラリは少し進歩しており、別のOSで移植性が高いです。例えば、 Linux上でpthreadを使用して書かれたマルチスレッドコードは、ほとんど変更を加えずにWindows上でコンパイルして実行することもできます。
一方、RTOSのスレッド実装は異なります。RTOSのスレッドはタスクとして扱われ、スケジューラを起動する呼び出しが行われたときにのみ実行を開始します。
ほとんどの組み込みシステムは、OSがまったくないか、RTOSです。スレッドがまれであることを意味します。ただし、スレッド内に存在するだけでなく、割り込み、デュアルコアまたはマルチプロセスプログラムを記述するときにも、リエントラントと競合条件の概念は重要ではありません。基本的に、新しいデータが入ったときに割り込みがメインプログラムを中断させる低レベルのマイクロコントローラプログラムを書く人は、高水準のマルチスレッドWindowsプログラムを書く人と同じ問題に直面しています。プログラム。 – Lundin