python中線程和進(jìn)程有何區(qū)別
引入進(jìn)程和線程的概念及區(qū)別
threading模塊提供的類:
Thread, Lock, Rlock, Condition, [Bounded]Semaphore, Event, Timer, local。
1.什么是進(jìn)程
計(jì)算機(jī)程序只不過是磁盤中可執(zhí)行的二進(jìn)制(或其他類型)的數(shù)據(jù)。它們只有在被讀取到內(nèi)存中,被操作系統(tǒng)調(diào)用的時(shí)候才開始它們的生命期。
進(jìn)程(有時(shí)被稱為重量級(jí)進(jìn)程)是程序的一次執(zhí)行。每個(gè)進(jìn)程都有自己的地址空間、內(nèi)存、數(shù)據(jù)棧及其它記錄其運(yùn)行軌跡的輔助數(shù)據(jù)。
操作系統(tǒng)管理在其上運(yùn)行的所有進(jìn)程,并為這些進(jìn)程公平的分配時(shí)間,進(jìn)程也可以通過fork和spawn操作來完成其它的任務(wù)。
不過各個(gè)進(jìn)程有自己的內(nèi)存空間、數(shù)據(jù)棧等,所以只能使用進(jìn)程間通訊,而不能直接共享信息。
2.線程的基本概念
線程是進(jìn)程中執(zhí)行運(yùn)算的最小單位,是進(jìn)程中的一個(gè)實(shí)體,是被系統(tǒng)獨(dú)立調(diào)度和分派的基本單位,線程自己不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)行中必不可少的資源,但它可與同屬一個(gè)進(jìn)程的其它線程共享進(jìn)程所擁有的全部資源。一個(gè)線程可以創(chuàng)建和撤消另一個(gè)線程,同一進(jìn)程中的多個(gè)線程之間可以并發(fā)執(zhí)行。
3、線程和進(jìn)程的關(guān)系以及區(qū)別?
進(jìn)程和線程的關(guān)系:
(1)一個(gè)線程只能屬于一個(gè)進(jìn)程,而一個(gè)進(jìn)程可以有多個(gè)線程,但至少有一個(gè)線程。
(2)資源分配給進(jìn)程,同一進(jìn)程的所有線程共享該進(jìn)程的所有資源。
(3)處理機(jī)分給線程,即真正在處理機(jī)上運(yùn)行的是線程
(4)線程在執(zhí)行過程中,需要協(xié)作同步。不同進(jìn)程的線程間要利用消息通信的辦法實(shí)現(xiàn)同步。線程是指進(jìn)程內(nèi)的一個(gè)執(zhí)行單元,也是進(jìn)程內(nèi)的可調(diào)度實(shí)體.
進(jìn)程與線程的區(qū)別:
(1)調(diào)度:線程作為調(diào)度和分配的基本單位,進(jìn)程作為擁有資源的基本單位
(2)并發(fā)性:不僅進(jìn)程之間可以并發(fā)執(zhí)行,同一個(gè)進(jìn)程的多個(gè)線程之間也可并發(fā)執(zhí)行
(3)擁有資源:進(jìn)程是擁有資源的一個(gè)獨(dú)立單位,線程不擁有系統(tǒng)資源,但可以訪問隸屬于進(jìn)程的資源.
(4)系統(tǒng)開銷:在創(chuàng)建或撤消進(jìn)程時(shí),由于系統(tǒng)都要為之分配和回收資源,導(dǎo)致系統(tǒng)的開銷明顯大于創(chuàng)建或撤消線程時(shí)的開銷。
知識(shí)點(diǎn)補(bǔ)充:
進(jìn)程是資源分配的單位 線程是操作系統(tǒng)調(diào)度的單位 協(xié)程,又稱微線程,纖程,協(xié)程的切換只是單純的操作CPU的上下文,資源很小,效率高 進(jìn)程切換需要的資源很最大,效率很低 一個(gè)程序至少有一個(gè)進(jìn)程,一個(gè)進(jìn)程至少有一個(gè)線程 線程執(zhí)行開銷小,但不利于資源的管理和保護(hù);而進(jìn)程正相反到此這篇關(guān)于python中線程和進(jìn)程有何區(qū)別的文章就介紹到這了,更多相關(guān)python中線程和進(jìn)程的區(qū)別內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. .Net Core和RabbitMQ限制循環(huán)消費(fèi)的方法2. jsp網(wǎng)頁實(shí)現(xiàn)貪吃蛇小游戲3. asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說明4. ASP.NET MVC遍歷驗(yàn)證ModelState的錯(cuò)誤信息5. 用css截取字符的幾種方法詳解(css排版隱藏溢出文本)6. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向7. asp中response.write("中文")或者js中文亂碼問題8. PHP設(shè)計(jì)模式中工廠模式深入詳解9. CSS hack用法案例詳解10. 將properties文件的配置設(shè)置為整個(gè)Web應(yīng)用的全局變量實(shí)現(xiàn)方法
