什麼是進程(Process):普通的解釋就是,進程是程序的一次執行,而什麼是線程(Thread),線程可以理解為進程中的執行的一段程序片段。在一個多任務環境中下面的概念可以幫助我們理解兩者間的差別:
圖一
一個最簡單的例子就是在屏幕上畫多個跳動的小球,我們對每個球的繪制都可以采用一個線程來完成。但是象這樣的線程間完全獨立沒有影響沒有數據交換的情況是很少的。
下面我們看一個例子,一個應用要完成兩個任務:每次產生1000個隨機數寫入文件並從文件中讀出數據並以該隨機數為圓心畫圓,對該操做進行100次,並使用100個不同的文件保存文件。傳統做法如下:
void do_this(void)
{
for(int i=0;i<100;i++)
{
/// step 1
generate 1000 randam number;