進程與線程day 13.5
學習計劃:
- 學完day13的任務
- 學會續行
- 保存代碼
學習內容:
- 多進程還是多線程:
- 優點:多任務同時進行
- 缺點:切換任務容易耗時間。
問題:為什么會切換任務,不是同時進行的嗎?
回答:我認為,在單核CPU里面,多線程是不可能真正的并發的,只是因為不停地切換導致多線程看上去在同時做任務。但是多進程是同時并發的,這也說明,多進程適用于真正地同時進行幾個任務,比如下載東西時逛淘寶之類的;多線程適用于對同一資源進行不同的操作,比如你的爸爸媽媽同時給你的銀行卡打錢。
- 適用范圍:
- 適用于I/O密集型任務(input和output,比如下載,和網絡應用)。
- 不適用于計算密集型任務,比如解碼之類的大量消耗CPU的任務
- 異步I/O:
通過異步I/O,使得單進程單線程可以同時執行多個任務,成為事件驅動模型,在多核CPU中就是多進程,在python中異步I/O成為協程,有單線程+協程,和多進程+協程 - 續行時注意
\
的使用,有逗號時不使用\
,即
# 沒有逗號時字符串太長用\
print('很長很長很長很長很長很長很長很長很長很長很長很長\
很長很長很長很長很長很長很長很長很長的句子')
# 錯誤的示范如下
print('很長很長很長很長很長很長很長很長很長很長很長很長
很長很長很長很長很長很長很長很長很長的句子')
# 字符串太長,有逗號時,分開時處的逗號后面不用空格,
print('qwerty', 'werwerwerrrrrrrrq', 'fweeeeeeee',
'fewrfwefwefffrewwfewrfwrgewbrg')
dictionary = {
'name': 'hilary',
'gender': 'girl',
'birthday': '0115',
'book ': 'Harry Potter'
}
對python的話:
??總是擔心自己學的與數據分析無關,其實時間充裕,多看一點,真的很有意思呀,不要浮躁.
??敲代碼時,總覺得很無趣,沒意思。唉,怎么說呢?孰能生巧,巧思和匠心都是來源于一遍又一遍看似枯燥的重復練習中。
未做的事:
- 保存代碼
- 由于multiprocessing沒有安裝成功,所以案例2沒有寫完,記得將來安好了寫
- 學會怎么安裝包