併發程式設計 執行緒介紹

2022-05-17 01:54:22 字數 598 閱讀 9164

執行緒共享建立它的程序的位址空間; 程序有自己的位址空間

執行緒可以直接訪問其程序的資料段(同程序內資料共享); 程序有自己的父程序資料段副本(資料隔離)

執行緒可以直接與其程序的其他執行緒通訊;程序必須使用程序間通訊與兄弟程序通訊

新執行緒很容易建立(建立的開銷很少,速度很快);新程序需要父程序的重複(需要開闢空間,複製資源,開銷比開啟執行緒多10-100倍)

執行緒可以對同一程序的執行緒進行相當大的控制; 程序只能對子程序進行控制

對主線程的更改(取消、優先順序更改等)可能會影響程序的其他執行緒的行為; 對父程序的更改不會影響子程序.

多執行緒共享乙個程序的位址空間

執行緒比程序更輕量級,執行緒比程序更容易建立和撤銷,在許多作業系統中,建立乙個執行緒比建立乙個程序要快10-100倍,在有大量執行緒需要動態和快速修改時,這一特性很有用

若多個執行緒都是cpu密集型的,那麼並不能獲得效能上的增強,但是如果存在大量的計算和大量的i/o處理,擁有多個執行緒允許這些活動彼此重疊執行,從而會加快程式執行的速度.

在多cpu系統中,為了最大限度的利用多核,可以開啟多個執行緒,比開程序開銷要小的多.(這一條並不適用於python)

使用者執行緒的優缺點:

混合實現

多執行緒併發程式設計

docker 可謂是開啟了容器化技術的新時代,現在無論大中小公司基本上都對容器化技術有不同程度的嘗試,或是已經進行了大量容器化的改造。伴隨著 kubernetes 和 cloud native 等技術和理念的普及,也大大增加了業務容器化需求。而這一切的推進,不可避免的技術之一便是構建容器映象。在本場...

併發程式設計 守護執行緒

守護執行緒的意思 主程序結束後,不在執行未結束的執行緒了 from threading import thread from time import sleep class mythread thread def init self,name thread.init self self.name n...

併發程式設計 執行緒篇

public class shutdown private static class runner implements runnable system.out.println count i i public void cancel 本質 對乙個物件的監視器 monitor 進行獲取,而這個獲取過...