ジョブ、タスク、プロセス、スレッドの違いは、
ジョブ |
人間から見た仕事 |
タスク |
ジョブに対してPCがジョブを分割して、PCで仕事をしやすくしたもの |
プロセス |
タスクとほぼ同意義に使われることも多い。アプリケーションレベルでの仕事を指す(word.exeとexcel.exeが走っている等)。複数実行できたりする |
スレッド |
プロセス上でいくつか走っている仕事。例えば、wordで文字を表示するのと文字カウントが自動で動いている等) |
プロセス≒タスクの位置づけは1つ以上のスレッドからなり、複数スレッドは同じメモリ空間を共有している
といった関係性を持ったものになる。
尚、スレッドの実装方法については
下の参考のページから結構引用しているので、そちらを参考にしたい。
スレッドの実装方法はunix系とwindows系OSで異なる。
unix系の場合は<pthread.h>をインクルードして、
pthread_t id;
pthread_create(&id,NULL,関数名,引数);
pthread_detach(id);
でデタッチしてやれば良い。
pthread_detachかpthread_joinは必須だということのようだ。
windows系の場合は<windows.h>や<proces.h>を
利用して、_beginthread(関数名,0,NULL);
_endthread()等を利用する。
ちなみにpid,fork等のforkの戻り値を制御するのは
windows系はできないようで、cygwinとかなら何とか
できるレベル
最終更新:2011年04月02日 16:31