程序與執行緒區別與聯絡
(1) 劃分尺度:執行緒更小,所以多執行緒程式併發性更高;
(2) 資源分配:程序是資源分配的基本單位,同一程序內多個執行緒共享其資源;
(4) 處理器排程:執行緒是處理器排程的基本單位;
(5) 執行:每個執行緒都有乙個程式執行的入口,順序執行序列和程式的出口,但執行緒不能單獨執行,必須組成程序,乙個程序至少有乙個主線程。簡而言之,乙個程式至少有乙個程序,乙個程序至少有乙個執行緒.
什麼是「執行緒安全」
如果你的**所在的程序中有多個執行緒在同時執行,而這些執行緒可能會同時執行這段**。如果每次執行結果和
單執行緒執行的結果是一樣的,而且其他的
變數的值也和預期的是一樣的,就是執行緒安全的。
或者說:乙個類或者程式所提供的介面對於執行緒來說是
原子操作或者多個執行緒之間的切換不會導致該介面的執行結果存在二義性,也就是說我們不用考慮同步的問題。
執行緒安全問題都是由
全域性變數及
靜態變數引起的。
若每個執行緒中對
全域性變數、
靜態變數只有讀操作,而無寫操作,一般來說,這個全域性變數是執行緒安全的;若有多個執行緒同時執行寫操作,一般都需要考慮
執行緒同步,否則的話就可能影響執行緒安全。
程序與執行緒的概念
程序 process 和執行緒 thread 是作業系統的基本概念,但是它們比較抽象,不容易掌握。最近,我讀到一篇材料,發現有乙個很好的模擬,可以把它們解釋地清晰易懂。1.計算機的核心是cpu,它承擔了所有的計算任務。它就像一座工廠,時刻在執行。2.假定工廠的電力有限,一次只能供給乙個車間使用。也就...
程序與執行緒概念剖析
多道程式設計 是一種讓處理器在多個任務間來回切換執行的方法,這樣給了使用者一種所有任務並行執行的錯覺,這稱為 偽並行 任務輪轉工作是由任務排程器來執行的。任務排程器是os的乙個模組,它根據一套演算法來決定從執行緒表中排程執行緒的順序和時間。執行緒是一套機制,此機制可以為一般的 塊創造它所依賴的上下文...
程序與執行緒的概念與通訊方式
文章目錄 三 執行緒的定義 四 執行緒的通訊方式 總結 示例 pandas 是基於numpy 的一種工具,該工具是為了解決資料分析任務而建立的。如下 示例 import numpy as np import pandas as pd import matplotlib.pyplot as plt i...