摘要:由于線程是操作系統直接支持的執行單元,因此,高級語言通常都內置多線程的支持,也不例外,并且,的線程是真正的,而不是模擬出來的線程。多任務可以由多進程完成,也可以由一個進程內的多線程完成。是模塊中最重要的類之一,可以使用它來創建線程。
由于線程是操作系統直接支持的執行單元,因此,高級語言通常都內置多線程的支持,Python也不例外,并且,Python的線程是真正的Posix Thread,而不是模擬出來的線程。
多任務可以由多進程完成,也可以由一個進程內的多線程完成。
Thread 是threading模塊中最重要的類之一,可以使用它來創建線程。有兩種方式來創建線程:一種是通過繼承Thread類,重寫它的run方法;另一種是創建一個threading.Thread對象,在它的初始化函數(__init__)中將可調用對象作為參數傳入。
看到一篇比較好的介紹線程的文章:http://python.jobbole.com/81546/
下面是一個拷貝過來的代碼,比較有意思,multi_main()函數中的print去掉之后代碼效率會降低很明顯。添加一個print或者換成time.sleep(0.1),多線程的效率會迅速追上單線程,然而,是不是就僅僅止步于此了呢?不妨思考一下,那么python中的多線程又有何意義?
from threading import Thread import time #python在多線程的情況下居然比單線程整整慢了26% def counter(): i = 0 for j in range(50000000): i += 1 return True def main(): start_time = time.time() for tid in range(2): t = Thread(target=counter) t.start() t.join() end_time = time.time() print ("total time of single is: {}".format(end_time - start_time)) def multi_main(): thread_all = [] start_time = time.time() for tid in range(2): t = Thread(target=counter) t.start() thread_all.append(t) #print("0")#去掉這行代碼,代碼效率將降低,也可以在此sleep 0.1s for i in range(2): thread_all[i].join() end_time = time.time() print ("total time of multi is: {}".format(end_time -start_time)) if __name__ == "__main__": main() multi_main()
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/38339.html
摘要:的選擇器允許單個線程監視多個輸入通道。一旦執行的線程已經超過讀取代碼中的某個數據片段,該線程就不會在數據中向后移動通常不會。 1、引言 很多初涉網絡編程的程序員,在研究Java NIO(即異步IO)和經典IO(也就是常說的阻塞式IO)的API時,很快就會發現一個問題:我什么時候應該使用經典IO,什么時候應該使用NIO? 在本文中,將嘗試用簡明扼要的文字,闡明Java NIO和經典IO之...
摘要:以下這些項目,你拿來學習學習練練手。當你每個步驟都能做到很優秀的時候,你應該考慮如何組合這四個步驟,使你的爬蟲達到效率最高,也就是所謂的爬蟲策略問題,爬蟲策略學習不是一朝一夕的事情,建議多看看一些比較優秀的爬蟲的設計方案,比如說。 (一)如何學習Python 學習Python大致可以分為以下幾個階段: 1.剛上手的時候肯定是先過一遍Python最基本的知識,比如說:變量、數據結構、語法...
摘要:讓你收獲滿滿碼個蛋從年月日推送第篇文章一年過去了已累積推文近篇文章,本文為年度精選,共計篇,按照類別整理便于讀者主題閱讀。本篇文章是今年的最后一篇技術文章,為了讓大家在家也能好好學習,特此花了幾個小時整理了這些文章。 showImg(https://segmentfault.com/img/remote/1460000013241596); 讓你收獲滿滿! 碼個蛋從2017年02月20...
閱讀 632·2021-08-17 10:15
閱讀 1715·2021-07-30 14:57
閱讀 1971·2019-08-30 15:55
閱讀 2813·2019-08-30 15:55
閱讀 2704·2019-08-30 15:44
閱讀 662·2019-08-30 14:13
閱讀 2380·2019-08-30 13:55
閱讀 2588·2019-08-26 13:56