C 併發 並行 執行緒 程序

2021-10-23 06:18:54 字數 507 閱讀 5064

併發:併發是一種現象,我們每一時刻只能執行一種任務,但我們需要處理多個任務的時候,我們能夠快速的這些任務之間進行切換,一會執行a,一會執行b,這就是併發。併發是由處理器完成的,cpu在不同的程序之間執行排程,完成上下文切換,巨集觀上我們看到的是多個程序在同時的執行,但微觀上,其實不同的程序的執行的時間段是不同,但肯定的是同一時間只有乙個程序時正在執行。

併發在單核處理器和多核處理器上都存在。

並行:並行是針對多核處理器,在同一時刻,多個進**正的同時在執行,如果是單核處理器,你可以認為這種並行是一種假並行,因為這是cpu通過併發實現的給我們造成了一種並行的假象。

和並行相對的,其實是序列,序列是真正的,一次只能取到乙個任務,並且我必須要把任務完成為止,否則在此期間,我不會去接收別的任務。

執行緒:執行緒是程序中執行的道路,程序中的多個執行緒就是併發在執行的。乙個程序可以包含有多個執行緒,但至少有乙個主線程,執行緒是作業系統可識別的最小執行和排程單位。計算機將資源分配給程序,程序中的執行緒共享這些資源,所以利用多執行緒可以極大的提高程序的執行效率。

程序與執行緒 併發與並行

程序占有的資源 執行緒占有的資源 位址空間 棧全域性變數 暫存器開啟的檔案 狀態等 程式計數器 簡單的理解執行緒安全的問題 多執行緒程式在執行時候,可能會同時對乙個變數進行操作,操作的時候,一般執行緒會將這個變數的值copy到 自身執行緒的巨變變數中,再進行操作,此時可能就會發生 讀寫時資料不同步 ...

程序的並行和併發

目錄並行 並行是指兩者同時執行,比如賽跑,兩個人都在不停的往前跑 資源夠用,比如三個執行緒,四核的cpu 併發 併發是指資源有限的情況下,兩者交替輪流使用資源,比如一段路 單核cpu資源 同時只能過乙個人,a走一段後,讓給b,b用完繼續給a 交替使用,目的是提高效率。並行是從微觀上,也就是在乙個精確...

python程序與執行緒,同步與非同步,並行併發

from multiprocessing import process,pool import os import time class myprocess process def init self,wtime process.init self self.wtime wtime defrun s...