- 進程是資源分配的單位
- 線程是操作系統調度的單位
- 協程,又稱微線程,纖程,協程的切換只是單純的操作CPU的上下文,資源很小,效率高
- 進程切換需要的資源很最大,效率很低
- 一個程序至少有一個進程,一個進程至少有一個線程
- 線程執行開銷小,但不利於資源的管理和保護;而進程正相反
通俗描述
- 有一個老板想要開個工廠進行生產某件商品(例如剪子)
- 他需要花一些財力物力制作一條生產線,這個生產線上有很多的器件以及材料這些所有的 為了能夠生產剪子而准備的資源稱之為:進程
- 只有生產線是不能夠進行生產的,所以老板的找個工人來進行生產,這個工人能夠利用這些材料最終一步步的將剪子做出來,這個來做事情的工人稱之為:線程
- 這個老板為了提高生產率,想到3種辦法:
- 在這條生產線上多招些工人,一起來做剪子,這樣效率是成倍増長,即單進程 多線程方式
- 老板發現這條生產線上的工人不是越多越好,因為一條生產線的資源以及材料畢竟有限,所以老板又花了些財力物力購置了另外一條生產線,然后再招些工人這樣效率又再一步提高了,即多進程 多線程方式
- 老板發現,現在已經有了很多條生產線,並且每條生產線上已經有很多工人了(即程序是多進程的,每個進程中又有多個線程),為了再次提高效率,老板想了個損招,規定:如果某個員工在上班時臨時沒事或者再等待某些條件(比如等待另一個工人生產完謀道工序 之后他才能再次工作) ,那么這個員工就利用這個時間去做其它的事情,那么也就是說:如果一個線程等待某些條件,可以充分利用這個時間去做其它事情,其實這就是:協程方式
https://blog.csdn.net/weixin_42589922?t=1
