線程 、進程、協程 三者區別
1. 進程: 通俗理解一個運行起來的程序或者軟件叫做進程
1.1 每次啟動一個進程都需要向操作系統索要運行資源,讓進程中的線程去執行對應的代碼,進程是操作系統分配資源的基本單位
1.2 默認情況下一個進程只有一個線程,線程是依附在進程里面的, 沒有進程就沒有線程, 當在進程里面還可以創建多個線程
1.3 如何理解進程: 把進程想成現實生活中的公司,公司可以給員工提供辦公資源(辦公桌椅,辦公電腦等資源), 真正干活的是員工,所以員工可以想成線程,公司就是進程
2. 進程和線程的對比
2.1 進程是操作系統資源分配的基本單位,每啟動一個進程都需要向操作系統索要運行資源,默認一個進程只有一個線程,線程是依附在進程里面的
2.2 線程是cpu調度的基本單位, 通過線程去執行進程中代碼, 線程是執行代碼的分支
2.3 多進程開發比單進程多線程開發穩定性要強,但是多進程開發比多線程開發資源開銷要大
2.4 多進程開發某個進程死了不會影響其它進程的運行,但是多線程開發該進程死了那么這些線程都要進行銷毀
并發: 任務數大于cpu的核數,多個任務輪流執行,由于cpu切換速度特別快,看起來像是一起運行,其實是假象。
并行:? 任務數小于或者等于cpu的核數,那么多個任務是真正意義一起執行。
3. 進程、線程、協程
1.1 先有進程,然后進程可以創建線程,線程是依附在進程里面的, 線程里面可以包含多個協程
1.2 進程之間不共享全局變量,線程之間共享全局變量,但是要注意資源競爭的問題
1.3 多進程開發比單進程多線程開發穩定性要強,但是多進程開發比多線程開發資源開銷要大
1.4 多線程開發線程之間執行是無序的,協程之間執行按照一定順序交替執行
1.5 協程以后主要用在網絡爬蟲和網絡請求,開辟一個協程大概需要5k空間,開辟一個線程需要512k空間, 開辟一個進程占用資源最多
原文:https://blog.csdn.net/weixin_42157608/article/details/80362542
任務調度
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。