c 的執行緒和程序的區別,C 多執行緒多程序問題

時間 2022-02-03 14:40:06

1樓:夜禮服假面

執行緒是指程序內的一個執行單元,也是程序內的可排程實體.

與程序的區別:

(1)地址空間:程序內的一個執行單元;程序至少有一個執行緒;它們共享程序的地址空間;而程序有自己獨立的地址空間;

(2)資源擁有:程序是資源分配和擁有的單位,同一個程序內的執行緒共享程序的資源

(3)執行緒是處理器排程的基本單位,但程序不是.

4)二者均可併發執行.

程序和執行緒都是由作業系統所體會的程式執行的基本單元,系統利用該基本單元實現系統對應用的併發性。程序和執行緒的區別在於:

簡而言之,一個程式至少有一個程序,一個程序至少有一個執行緒.

執行緒的劃分尺度小於程序,使得多執行緒程式的併發性高。

另外,程序在執行過程中擁有獨立的記憶體單元,而多個執行緒共享記憶體,從而極大地提高了程式的執行效率。

執行緒在執行過程中與程序還是有區別的。每個獨立的執行緒有一個程式執行的入口、順序執行序列和程式的出口。但是執行緒不能夠獨立執行,必須依存在應用程式中,由應用程式提供多個執行緒執行控制。

從邏輯角度來看,多執行緒的意義在於一個應用程式中,有多個執行部分可以同時執行。但作業系統並沒有將多個執行緒看做多個獨立的應用,來實現程序的排程和管理以及資源分配。這就是程序和執行緒的重要區別。

程序是具有一定獨立功能的程式關於某個資料集合上的一次執行活動,程序是系統進行資源分配和排程的一個獨立單位.

執行緒是程序的一個實體,是cpu排程和分派的基本單位,它是比程序更小的能獨立執行的基本單位.執行緒自己基本上不擁有系統資源,只擁有一點在執行中必不可少的資源(如程式計數器,一組暫存器和棧),但是它可與同屬一個程序的其他的執行緒共享程序所擁有的全部資源.

一個執行緒可以建立和撤銷另一個執行緒;同一個程序中的多個執行緒之間可以併發執行.

2樓:碼農架構

[作業系統]程序和執行緒的區別

c++ 多執行緒多程序問題

3樓:匿名使用者

執行:235

...9949

9967

9973

total prime numbers : 1231

C 如何運用多執行緒 5,C 中構建多執行緒應用程式

thread th1 new thread new threadstart aa 執行緒1 thread th2 new thread new threadstart aa 執行緒2 thread th3 new thread new threadstart aa 執行緒3 執行緒1啟動。執行緒2啟...

c 多執行緒加鎖的問題,C 執行緒中方法可以加鎖嗎?

lock是鎖住執行緒吧,用protect和final不給呼叫算不。恩,可以的。先定義lock物件。object objlock new object 在lock塊中呼叫一個函式。lock objlock 可以啊 放在lock塊裡。還有一種執行緒同步一系統的方法。比如用monitor mutex一系統...

C 的多執行緒裡的事件是怎樣定義的,事件和執行緒有啥聯絡和區別

在程式設計領域,所謂同步就是指你要等待一個過程 呼叫,任務,事件等 執行完畢後才能進行下一步操作 而非同步則相反,你不需要等待它執行完畢就可以繼續進行其它操作了。那麼,在單核多執行緒的平臺上,在邏輯上看 執行緒 a 發起 發射,呼叫 過程 p 之後不等待而繼續執行 p1,由執行緒 b 執行過程 p,...