python多线程和多进程的区别_python中多线程与多进程的区别
線程的概念:
線程是操作系統(tǒng)中進行運算調(diào)度的最小單位。它被包含在進程之中,是進程中的實際運作單位。一條線程指的是進程中一個單一順序的控制流,一個進程可以有多個線程,每條線程可以同時執(zhí)行不同的任務(wù)。一個線程可以看作一個cpu執(zhí)行時所需要的一串指令
多線程
在Python的標準庫中提供了兩個模塊:_thread和threading,_thread是低級模塊不支持守護線程,當主線程退出時,所有子線程都會被強行退出。而threading是高級模塊,用于對_thread進行了封裝支持守護線程。在大多數(shù)情況下我們只需要使用threading這個高級模塊即可。
進程的概念:
進程指的是一個程序在給定數(shù)據(jù)集合上的一次執(zhí)行過程,是系統(tǒng)進行資源分配和運行調(diào)用的獨立單位。也就是每一個應(yīng)用程序都有一個自己的進程。進程在啟動時都會最先產(chǎn)生一個線程,這個線程被稱為主線程,然后再有主線程創(chuàng)建其他子線程
多進程:
多進程是multiprocessing模塊提供遠程與本地的并發(fā),在一個multiprocessing庫的使用場景下,所有的子進程都是由一個父進程啟動來的,這個父進程成為madter進程,它會管理一系列的對象狀態(tài),一旦這個進程退出,子進程很可能處于一個不穩(wěn)定的狀態(tài),所以這個父進程盡量要少做事來保持其穩(wěn)定性
線程與進程的區(qū)別
(1)線程必須在某個進程中執(zhí)行。一個進程可包含多個線程,并且只有一個主線程。
(2)多線程共享同個地址空間、打開的文件以及其他資源。而多進程共享物理內(nèi)存、磁盤、打印機以及其他資源。
(3)線程幾乎不占資源,系統(tǒng)開銷少,切換速度快,而且同個進程中的多個線程可以實現(xiàn)數(shù)據(jù)共享,而進程之間是不可共享的
(4)新線程的創(chuàng)建很簡單而新進程的創(chuàng)建需要對父進程進行克隆
(5)一個線程可以控制和操作同一進程里的其他線程;但是進程只能操作子進程
總結(jié)
以上是生活随笔為你收集整理的python多线程和多进程的区别_python中多线程与多进程的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: fastreport文本字数太多换行_F
- 下一篇: c++矩阵类_Python线性代数学习笔