昇騰】【每天進步一點點】Python中的多線程一點思考

      網友投稿 727 2022-05-30

      前言

      多線程,這個名詞大家應該比較熟悉。比如說在我們電腦的處理器一般是xxx核xxx線程,比如我的電腦的處理器是Intel Core i7-9750H,是6核12線程處理器,一般情況下,一個核同時只能有一個任務執行。多核時才可以支持多個線程同時執行。但通過采用超線程技術,Intel Core i7-9750H實現了增加一倍的線程,即達到了12個線程,使得對于多任務處理能夠更好的運行,但對于游戲這種對頻率 有更多需求的應用來說,多線程就沒什么太大優勢了,這時頻率起到了主要作用。

      那么線程到底是什么呢?

      【昇騰】【每天進步一點點】Python中的多線程一點思考

      線程(Thread)也叫輕量級進程,是操作系統能夠進行運算調度的最小單位,它被包涵在進程之中,是進程中的實際運作單位。線程自己不擁有系統資源,只擁有一點兒在運行中必不可少的資源,但它可與同屬一個進程的其它線程共享進程所擁有的全部資源。一個線程可以創建和撤消另一個線程,同一進程中的多個線程之間可以并發執行。

      簡單來說,多線程可以草率的理解為:同時執行多個不同的應用程序,相當于并行處理,同時做了多件事。很明顯,優勢很大。我們看看對它的評價:

      每個獨立的線程有一個程序運行的入口、順序執行序列和程序的出口。但是線程不能夠獨立執行,必須依存在應用程序中,由應用程序提供多個線程執行控制。每個線程也都有自己的一組CPU寄存器,稱為線程的上下文,該上下文反映了線程上次運行該線程的CPU寄存器的狀態。指令指針和堆棧指針寄存器是線程上下文中兩個最重要的寄存器,線程總是在進程得到上下文中運行的,這些地址都用于標志擁有線程的進程地址空間中的內存。

      好了,好了,是不是有些凌亂了,理論總是枯燥的,直接看看代碼,在實戰中理解吧,以下代碼在華為云ModelArts NoteBook中,使用CPU 2核下驗證。

      1. 多線程初識

      運行結果

      可以看到兩個線程交替執行,work1先執行一次,打印了“0”,之后work2執行,打印了“0”,然后又是work1執行打印了“1”,以此類推。在程序運行中,你可以看到work1和work2同時打印了“0”,之后,又同時打印了“1”,“2”,仿佛work1和work2同時在運行一樣。

      2. 線程同步

      運行結果

      注意,這里test2的每次運行結果可能不一樣,但最終結果是一樣的,即200 0000。

      這里使用兩個線程對同一個變量操作,每個線程完成100 0000次累加,兩個線程同步后,共計完成 200 0000次累積,得到最終200 0000結果。

      好了,多線程大概就是這樣了,還有其他的一些內容,以后有機會再來說。其實在Python中,無論處理器有多少個核,同時只能執行一個線程。這就是由于GIL的存在導致的。GIL的全稱是Global Interpreter Lock(全局解釋器鎖),來源是Python設計之初的考慮,為了數據安全所做的決定。某個線程想要執行,必須先拿到GIL,我們可以把GIL看作是“通行證”,并且在一個Python進程中,GIL只有一個,拿不到通行證的線程,就不允許進入CPU執行。

      所以,想要充分利用多核CPU,就用多進程,注意不是剛下講的所線程哦,對于進程和線程的區別,可以簡單理解為進程是一個國家,線程是這個國家一個具體的城市,一個進程可以有多個線程,就像一個國家可以有多個城市,但一個線程要在一個進程的依賴下,就像我們寫跨國通信地址的時候,寫這個城市前,要先寫這個國家。因為每個進程有各自獨立的GIL,互不干擾,這樣就可以真正意義上的并行執行,在Python中,多進程的執行效率優于多線程(僅僅針對多核CPU而言,現在一般應該都是多核處理器了)。

      昇騰 人工智能 AI

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:華為正式發布鯤鵬、昇騰眾智計劃:基礎軟件開源、行業應用開放、生態發展使能
      下一篇:干貨系列—華為云醫療影像解決方案
      相關文章
      亚洲无码视频在线| 国产精品亚洲va在线观看| 亚洲国产精品无码久久青草| 在线精品亚洲一区二区| 久久精品国产亚洲AV久| 亚洲成a人片在线观看中文app| 亚洲色四在线视频观看| 亚洲成a人片在线观看中文动漫| 国产亚洲婷婷香蕉久久精品 | 亚洲乱码中文字幕手机在线| 亚洲精品又粗又大又爽A片| 亚洲午夜无码毛片av久久京东热| 亚洲综合校园春色| 亚洲精品456人成在线| 亚洲色偷偷色噜噜狠狠99网| 欧洲 亚洲 国产图片综合| 亚洲人成色在线观看| 亚洲国产综合AV在线观看| 国产亚洲欧美在线观看| 日韩亚洲国产综合久久久| 亚洲国产婷婷综合在线精品| 亚洲熟女乱综合一区二区| 亚洲国产精品尤物yw在线| 亚洲午夜爱爱香蕉片| 亚洲愉拍99热成人精品热久久| 亚洲欧洲成人精品香蕉网| 亚洲爆乳精品无码一区二区三区| 亚洲av一综合av一区| 综合自拍亚洲综合图不卡区| 亚洲成综合人影院在院播放| 激情内射亚洲一区二区三区爱妻| 亚洲精品456人成在线| 大桥未久亚洲无av码在线| 亚洲精品无码av天堂| 亚洲大成色www永久网站| 67pao强力打造67194在线午夜亚洲 | 亚洲色大成网站www久久九| 亚洲AV日韩AV无码污污网站| 亚洲国产小视频精品久久久三级| 久久精品国产亚洲AV不卡| 亚洲爆乳无码一区二区三区|