Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> LinuxとWindowsのシステムスレッドの違い

LinuxとWindowsのシステムスレッドの違い

  

Linuxと Windows
のシステムスレッド、WIN32プログラミングに精通している人は、WIN32のプロセス管理はLinuxとLinuxとは非常に異なることを知っておく必要があります。プロセスという概念だけがありますが、WIN32には「スレッド」という概念がありますが、LinuxとWIN32の違いは何ですか?WIN32のプロセス/スレッドはOS /2から継承されます。 WIN32では、「プロセス」はプログラムを指し、「スレッド」は「プロセス」内の実行「スレッド」を指す。基本的には、WIN32のマルチプロセスはLinuxとそれほど違いはありませんが、WIN32のスレッドはLinuxプロセスと同等で、実際に実行されているコードです。ただし、WIN32は同じプロセス内のスレッド間でデータセグメントを共有します。これがLinuxプロセスとの最大の違いです。 WIN32では、CreateThread関数を使用してスレッドを作成しますが、Linuxでの作成プロセスとは異なり、WIN32スレッドは作成場所から実行されるのではなく、CreateThreadで指定されたスレッドから実行されます。このプログラムは、以前のUNIXプログラムと同様に、それぞれ2つのスレッドで1000個のメッセージを出力します。 threadIDは子スレッドのスレッド番号であり、さらにグローバル変数gは子スレッドと親スレッドの間で共有されている点がLinuxとの最大の違いです。お分かりのように、WIN32のプロセス/スレッドはLinuxよりも複雑ですが、LinuxでWIN32のようなスレッドを実装することは難しくありません。 WIN32の下で同様のフォークの機能を達成することはできません。そのため、WIN32でCコンパイラによって提供されるライブラリ関数は、ほとんどのLinux /UNIXライブラリ関数と互換性がありますが、それでもforkを実装することはできません。マルチタスクシステムではデータ領域を共有する必要がありますが、混乱を招きやすい問題でもありますWIN32では、スレッド間でデータが共有されていることをプログラマが忘れるのは簡単です。別のスレッドがそれを修正し、プログラムに問題を引き起こしました。しかしLinuxでは、変数は共有されないため、プログラマは共有するデータを明示的に指定し、プログラムをより明確で安全なものにします。 WIN32の「プロセス」の概念に関しては、その意味は「アプリケーション」であり、これはUNIXのexecと同じです。
zh-CN"],null,[1],zh-TW"]]]

Copyright © Windowsの知識 All Rights Reserved