Linux 多進程多線程相關概念

來源:互聯網
上載者:User

標籤:多線程   共用   過程   管理   處理   free   src   返回   應用   

進程:可執行程式是儲存在磁碟裝置上的由代碼和資料按某種格式組織的靜態實體,而進程是可被調度的代碼的動態運行。在Linux系統中,每個進程都有各自的生命週期。在一個進程的生命週期中,都有各自的運行環境以及所需的資源,這些資訊都記錄在各自的進程式控制制塊中,以便系統對這些進程進行有效管理,進程式控制制塊的結構如所示:

每個進程都有各自獨立的虛擬位址空間,空間的大小與所基於的硬體體繫結構有關。虛擬空間中各區代表的意義,程式碼片段儲存指令序列和唯讀資料,多個進程執行個體可共用程式碼片段。資料區段用來存放全域變數和靜態變數。堆地區用於程式的動態記憶體管理,new或者malloc申請的記憶體就位於堆中。棧用來存放進程運行過程中的局部變數,函數返回地址,參數和進程上下文環境。

線程:引入進程是為瞭解決程式並發執行的問題,而引入線程是為了減少程式並發所帶來的時間和空間的開銷,線程是比進程更小的單位,一個進程至少有一個線程,線程是作業系統進行調度的基本單位,線程基本上不佔用系統資源,線程與其他同屬一個進程的線程共用該進程所佔有的資源。

應用編程介面(相關標頭檔和參數類型可通過man命令查看)

進程環境  

getuid   獲得當前進程實際使用者ID

geteuid   獲得當前進程有效使用者ID

getgid        獲得當前進程實際使用者組ID 

getegid      獲得當前進程有效使用者組ID

getpid  獲得當前進程ID

getppid   獲得父進程ID

getpgrp     獲得進程組ID

setpgid      設定進程組

getsid   獲得進程會話ID

setsid        設定進程會話ID

進程地址空間

malloc   申請記憶體

free       釋放記憶體

brk    設定堆地區大小

進程的建立與終止

fork  建立子進程

exit        終止進程

atexit     註冊終止處理常式

載入可執行二進位映像

exec

進程的同步控制

wait    暫停執行直到一個子進程結束

waitpid   等待指定子進程結束

線程

1. pthread_equal     //判斷線程是否相同
2. pthread_self        //返回調用線程的ID
3. pthread_create      //建立線程
4. pthread_exit      //退出線程
5. pthread_join      //啟動線程
6. pthread_cancel    //取消線程
7. pthread_cleanup_push 
8. pthread_cleanup_pop 
9. pthread_detach 
10. pthread_mutex_init 
11. pthread_mutex_destroy

總結:這一部分,間短介紹了linux下多進程和多線程的相關概念,並介紹了編程時使用的一些api,多進程編程和多線程編程的執行個體放在下一部分介紹。

Linux 多進程多線程相關概念

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.