python為什麼要用執行緒
執行緒在程式中是獨立的、併發的執行流。與分隔的程式相比,程式中執行緒之間的隔離程度要小,它們共享記憶體、檔案控制程式碼和其他程式應有的狀態。
因為執行緒的劃分尺度小於程式,使得多執行緒程式的併發性高。程式在執行過程中擁有獨立的記憶體單元,而多個執行緒共享記憶體,從而極大地提高了程式的執行效率。
執行緒比程式具有更高的效能,這是由於同一個程式中的執行緒都有共性多個執行緒共享同一個程式的虛擬空間。執行緒共享的環境包括程式程式碼段、程式的公有資料等,利用這些共享的資料,執行緒之間很容易實現通訊。
作業系統在建立程式時,必須為該程式分配獨立的記憶體空間,並分配大量的相關資源,但建立執行緒則簡單得多。因此,使用多執行緒來實現併發比使用多程式的效能要高得多。
總結起來,使用多執行緒程式設計具有如下幾個優點:程式之間不能共享記憶體,但執行緒之間共享記憶體非常容易。作業系統在建立程式時,需要為該程式重新分配系統資源,但建立執行緒的代價則小得多。因此,使用多執行緒來實現多工併發執行比使用多程式的效率高。Python 語言內建了多執行緒功能支援,而不是單純地作為底層作業系統的排程方式,從而簡化了 Python 的多執行緒程式設計。
在實際應用中,多執行緒是非常有用的。比如一個瀏覽器必須能同時下載多張圖片;一個 Web 伺服器必須能同時響應多個使用者請求;圖形使用者介面(GUI)應用也需要啟動單獨的執行緒,從主機環境中收集使用者介面事件……總之,多執行緒在實際程式設計中的應用是非常廣泛的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2041/viewspace-2836607/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一步步瞭解執行緒池之為什麼要用執行緒池執行緒
- python 多執行緒為什麼雞肋?Python執行緒
- 什麼是Python執行緒?Python執行緒如何建立?Python執行緒
- 什麼是多執行緒?Python多執行緒有什麼優勢?執行緒Python
- 執行緒池管理(1)-為什麼需要執行緒池執行緒
- redis為什麼用單執行緒不用多執行緒Redis執行緒
- 為什麼要使用執行緒池執行緒
- 為什麼有人說 Python 多執行緒是雞肋?Python執行緒
- 程式執行緒新解:什麼是程式?什麼是執行緒?執行緒
- ArrayList 為什麼執行緒不安全執行緒
- 為什麼redis是單執行緒的以及為什麼這麼快?Redis執行緒
- 為什麼要用docker?Docker
- 為什麼要用dockerDocker
- 為什麼要用RedisRedis
- 我會手動建立執行緒,為什麼讓我使用執行緒池?執行緒
- Redis單執行緒,為什麼速度快Redis執行緒
- 解析:為什麼人工智慧要用Python?人工智慧Python
- Redis為什麼是單執行緒?為什麼有如此高的效能?Redis執行緒
- 為什麼?為什麼StringBuilder是執行緒不安全的?UI執行緒
- Python多執行緒是什麼意思?有什麼優勢?Python執行緒
- redis是單執行緒的,為什麼這麼快Redis執行緒
- 單執行緒的 Javascript 為什麼可以非同步執行緒JavaScript非同步
- 為什麼多執行緒可以利用到多核?執行緒
- 為什麼要用SOCKS代理?
- 為什麼要用混合加密?加密
- 為什麼說執行緒太多,cpu切換執行緒會浪費很多時間?執行緒
- GC 為什麼要掛起使用者執行緒? 什麼愁什麼怨?GC執行緒
- 什麼是執行緒安全和執行緒不安全執行緒
- 【多執行緒與高併發】Java守護執行緒是什麼?什麼是Java的守護執行緒?執行緒Java
- 為什麼 Random.Shared 是執行緒安全的random執行緒
- 為什麼 Go map 和 slice 是非執行緒安全的?Go執行緒
- 執行緒join為什麼在解構函式中執行緒函式
- 什麼是程式(執行緒)同步執行緒
- Redis是單執行緒的,但Redis為什麼這麼快?Redis執行緒
- 為什麼要用Node.jsNode.js
- 我們為什麼要用RedisRedis
- 為什麼要用Redis叢集?Redis
- 為什麼要用資料中臺