一、多執行緒簡介
1、作業系統下的並行執行機制
(1)並行就是說多個任務同時被執行。並行分微觀上的並行和巨集觀上的並行。
(2)巨集觀上的並行就是從長時間段(相對於人來說)來看,多個任務是同時進行的;微觀上的並行就是真的在並行執行。
(3)作業系統要求實現巨集觀上的並行。巨集觀上的並行有2種情況:第一種是微觀上的序列,第二種是微觀上的並行。
(4)理論來說,單核cpu本身只有乙個核心,同時只能執行一條指令,這種cpu只能實現巨集觀上的並行,微觀上一定是序列的。微觀上的並行要求多核心cpu。多核cpu中的多個核心可以同時微觀上執行多個指令,因此可以達到微觀上的並行,從而提公升巨集觀上的並行度。
二、程序和執行緒的區別和聯絡
(1)程序和執行緒是作業系統的兩種不同軟體技術,目的是實現巨集觀上的並行(通俗一點就是讓多個程式同時在乙個機器上執行,達到巨集觀上看起來並行執行的效果)。
(2)程序和執行緒在實現並行效果的原理上不同。而且這個差異和作業系統有關。譬如windows中程序和執行緒差異比較大,在linux中程序和執行緒差異不大(linux中線程就是輕量級的程序)。
(3)不管是多程序還是多執行緒,最終目標都是實現並行執行。
三、多執行緒的優勢
(1)前些年多程序多一些,近些年多執行緒開始用得多。
(2)現代作業系統設計時考慮到了多核心cpu的優化問題,保證了:多執行緒程式在執行的時候,作業系統會優先將多個執行緒放在多個核心中分別單獨執行。所以說多核心cpu給多執行緒程式提供了完美的執行環境。所以在多核心cpu上使用多執行緒程式有極大的好處。
多執行緒程式設計 多執行緒間通訊(五)
一般而言 應用程式中的乙個次要執行緒總是為主執行緒執行特定的任務,這樣 主線程和次要執行緒間必定有乙個資訊傳遞的渠道,也就是主線程和次要執行緒間要進行通訊。這種執行緒間 的通訊不但是難以避免的,而且在多執行緒程式設計中也是複雜和頻繁的,下面將進行說明。使用全域性變數進行通訊 由於屬於同乙個程序的各個...
Python之併發程式設計(五)多執行緒
多執行緒的概念介紹 threading模組介紹 threading模組和multiprocessing模式在使用層面,有甚大的相似性 開啟多執行緒的兩種方式 開啟程序的第一種方式 1.建立執行緒的開銷比建立程序的開銷小,因而建立執行緒的速度快 from multiprocessing import ...
多執行緒程式設計
1 多執行緒的基本思路不是在介面執行緒執行費時的 而是專門啟動乙個執行緒 稱作工作執行緒 來完成,介面執行緒只負責介面的 顯示 和操作,而工作執行緒只負責耗時的操作過程。2 對於普通的win32應用程式來說,執行緒可以分為兩種 介面 ui user inte ce 執行緒和工作執行緒。介面執行緒一般...