多線程編程之pthread簡介
Pthread是 POSIX threads 的簡稱,是POSIX的線程標準。POSIX是可移植操作系統接口
(Portable Operating System Interface)的簡稱,其定義了操作系統的標準接口,旨在獲得源代碼級別的軟件可移植性。Pthread是學習多線程的絕佳線程庫,其API命名方式同一般C/C++代碼相同,易於編程與理解。
1.線程庫選擇的疑惑:
Pthread只是C/C++支持的多線程庫中的一個,其他還有openMP,Boost,甚至WIN API等衆多庫。學習多線程編程,不必糾結於選哪個庫,如同學習C/C++時不要糾結於使用哪個編譯器,專注於學習多線程的原理纔是王道。
2. 線程與進程:
進程是一個具有獨立功能程序的運行實體,如上節的示例程序,運行時便產生一個進程;通常一個進程包含一個或多個線程。
普通C程序多是隻含有一個線程的進程,上節的示例程序包含線程1與線程2,故示例程序是多線程的進程。
線程與進程都是操作系統的概念。不同進程之間相互獨立,同一進程的線程共享該進程的地址空間及其他資源。
線程與進程關係如下圖:
3.多線程的優勢:
- 提高應用程序的響應速度:相比單線程程序,多線程程序不必等待其他線程完成就可以開始另一個線程。
- 有效使用多處理器,提高CPU利用率:多線程程序能很好的使用多處理器,提高運行速度。
- 節省系統資源: 處理同步任務時,使用兩個線程比使用兩個進程節省大量的系統資源。
來自 <https://blog.csdn.net/lovecodeless/article/details/23673965>