{eval=Array;=+count(Array);}
1.概念
進程:運行中的程序。 線程:一個程序中的多個執行路徑。更準確的定義是:線程是一個進程內部的一個控制序列。
2.為什么要有線程?
用fork調用進程代價太高,需要讓一個進程同時做多件事情,線程就非常有用。
3.線程的優點和缺點。
優點:
(1)有時,讓程序看起來是在同時做兩件事是非常有用的。 比如在編輯文檔時,還能統計文檔里的單詞個數。
(2)一個混雜著輸入、計算、輸出的程序,利用線程可以將這3個部 分分成3個線程來執行,從而改變程序執行的性能。
(3)一般來說,線程之間切換需要操作系統所做的工作比進程間切換需要的代價小。
缺點:
(1)編寫線程需要非常仔細的設計。
(2)對多線程的調試困難程度比單線程調試大得多。
4.創建線程
Linux系統支持POSIX多線程接口,稱為pthread。
編寫linux下的多線程程序,需要包含頭文件pthread.h,鏈接時需要使用庫libpthread.a。
如果在主線程里面創建線程,程序就會在創建線程的地方產生分支,變成兩個部分執行。線程的創建通過函數pthread_create來完成。成功返回0。
一個簡單的創建多線程的程序:
輸出結果
以上就是Linux 多線程的實例詳解,感謝閱讀,希望能幫助到大家!
例如程序的執行都是從main進程開始,如果在main創建多線程,比如線程1 2 3,那么CPU就會并發運行線程1 2 3 以及main ,互不影響
Linux的線程是通過輕量化線程實現的,其實和普通進程沒有本質的區別,但是線程之間的可以訪問彼此的一些數據、段和文件等等。
輕量化進程是Linux用來解決單純進程切換開銷太大的問題,通過創建線程組的方式來將屬于同一個進程的不同線程放在一起,實現部分數據共享,調度和通信在線程組里面都會非常方便和快速。
0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答