進程和線程的區別、完全二叉樹和滿二叉樹的區別

一、進程和線程的區別

進程:子進程是父進程的複製品。子進程獲得父進程數據空間、堆和棧的複製品。

線程:相對與進程而言,線程是一個更加接近與執行體的概念,它可以與同進程的其他線程共享數據,但擁有自己的棧空間,擁有獨立的執行序列。


兩者都可以提高程序的併發度,提高程序運行效率和響應時間。
線程和進程在使用上各有優缺點:

線程執行開銷小,但不利於資源管理和保護;而進程正相反。同時,線程適合於在SMP(Symmetric Multi-Processing,對稱多處理結構的簡稱,是指在一個計算機上彙集了一組處理器(多CPU),各CPU之間共享內存子系統以及總線結構。)機器上運行,而進程則可以跨機器遷移。


根本區別:

用多進程每個進程有自己的地址空間(address space),線程則共享地址空間。所有其它區別都是由此而來的:
1、速度:線程產生的速度快,線程間的通訊快、切換快等,因爲他們在同一個地址空間內。
2、資源利用率:線程的資源利用率比較好也是因爲他們在同一個地址空間內。


二、TCP與UDP的區別。

TCP(Transmission Control Protocol 傳輸控制協議)是一種面向連接的、可靠的、基於字節流的傳輸層通信協議,由IETF的RFC 793定義。在簡化的計算機網絡OSI模型中,完成第四層傳輸層所指定的功能。
UDP 是User Datagram Protocol的簡稱, 中文名是用戶數據報協議,是OSI(Open System Interconnection,開放式系統互聯) 參考模型中一種無連接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務,IETF RFC 768是UDP的正式規範。UDP在IP報文的協議號是17。


區別:
1、TCP面向連接(三次握手);UDP是無連接的,即發送數據之前不需要建立連接。
2、TCP要求系統資源較多,UDP較少。
3、UDP程序結構較簡單。
4、TCP是流模式UDP是數據報模式。
5、TCP保證數據正確性,UDP可能丟包。
6、TCP保證數據順序,UDP不保證。
7、TCP提供可靠的服務。也就是說,通過TCP連接傳送的數據,無差錯,不丟失,不重 復,且按序到達;UDP盡最大努力交付,即不保證可靠交付。
8、TCP面向字節流,實際上是TCP把數據看成一連串無結構的字節流;UDP是面向報文的, UDP沒有擁塞控制,因 此網絡出現擁塞不會使源主機的發送速率降低(對實時應用很有用,如IP電話,實時視頻會議等)。
9、每一條TCP連接只能是點到點的;UDP支持一對一,一對多,多對一和多對多的交互通信。
11、TCP首部開銷20字節;UDP的首部開銷小,只有8個字節。
12、TCP的邏輯通信信道是全雙工的可靠信道,UDP則是不可靠信道。


TCP三次握手過程
1 、主機A通過向主機B 發送一個含有同步序列號的標誌位的數據段給主機B ,向主機B 請求建立連接,通過這個數據段,
主機A告訴主機B 兩件事:我想要和你通信;你可以用哪個序列號作爲起始數據段來回應我.
2 、主機B 收到主機A的請求後,用一個帶有確認應答(ACK)和同步序列號(SYN)標誌位的數據段響應主機A,也告訴主機A兩件事:
我已經收到你的請求了,你可以傳輸數據了;你要用哪佧序列號作爲起始數據段來回應我
3 、主機A收到這個數據段後,再發送一個確認應答,確認已收到主機B 的數據段:"我已收到回覆,我現在要開始傳輸實際數據了


三、完全二叉樹和滿二叉樹的區別。

滿二叉樹:除最後一層外,每一層上的所有結點都有兩個子結點。在滿二叉樹中,每一層上的結點數都達到最大值,即在滿二叉樹的第k層上有2k-1個結點,且深度爲m的滿二叉樹有2m-1個結點。


完全二叉樹:除最後一層外,每一層上的結點數均達到最大值;在最後一層上只缺少右邊的若干結點。
對於完全二叉樹來說,葉子結點只可能在層次最大的兩層上出現:對於任何一個結點,若其右分支下的子孫結點的最大層次爲p,則其左分支下的子孫結點的最大層次或爲p,或爲p+1。


滿二叉樹肯定是完全二叉樹,完全二叉樹不一定是滿二叉樹。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章