(五)多线程编程
一、多線程簡介
1、操作系統下的并行執行機制
(1)并行就是說多個任務同時被執行。并行分微觀上的并行和宏觀上的并行。
(2)宏觀上的并行就是從長時間段(相對于人來說)來看,多個任務是同時進行的;微觀上的并行就是真的在并行執行。
(3)操作系統要求實現宏觀上的并行。宏觀上的并行有2種情況:第一種是微觀上的串行,第二種是微觀上的并行。
(4)理論來說,單核CPU本身只有一個核心,同時只能執行一條指令,這種CPU只能實現宏觀上的并行,微觀上一定是串行的。微觀上的并行要求多核心CPU。多核CPU中的多個核心可以同時微觀上執行多個指令,因此可以達到微觀上的并行,從而提升宏觀上的并行度。
二、進程和線程的區別和聯系
(1)進程和線程是操作系統的兩種不同軟件技術,目的是實現宏觀上的并行(通俗一點就是讓多個程序同時在一個機器上運行,達到宏觀上看起來并行執行的效果)。
(2)進程和線程在實現并行效果的原理上不同。而且這個差異和操作系統有關。譬如windows中進程和線程差異比較大,在linux中進程和線程差異不大(linux中線程就是輕量級的進程)。
(3)不管是多進程還是多線程,最終目標都是實現并行執行。
三、多線程的優勢
(1)前些年多進程多一些,近些年多線程開始用得多。
(2)現代操作系統設計時考慮到了多核心CPU的優化問題,保證了:多線程程序在運行的時候,操作系統會優先將多個線程放在多個核心中分別單獨運行。所以說多核心CPU給多線程程序提供了完美的運行環境。所以在多核心CPU上使用多線程程序有極大的好處。
多核CPU跑多線程程序,要注意多線程同步,在線程之間通信的時候用到一些共享變量,這些共享變量需要同步,多個線程不能同時訪問同一個共享變量,訪問之前要申請,獲取訪問權限,再沒被占用的情況下可以獲取到訪問權限,然后再進行操作,這就是多線程同步和鎖的問題。
轉載于:https://www.cnblogs.com/zhangshenghui/p/5903445.html
總結
- 上一篇: C语言--输入一个数判断是否为素数(多种
- 下一篇: d2j-dex2jar之DexExcep