亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Python中使用線程?

如何在Python中使用線程?

SMILET 2019-05-29 16:02:47
如何在Python中使用線程?我試圖理解Python中的線程。我看過文檔和示例,但坦率地說,很多例子都過于復雜,我很難理解它們。你如何清楚地展示為多線程劃分的任務?
查看完整描述

4 回答

?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

注意:對于Python中的實際并行化,您應該使用多處理模塊來并行執行并行執行的多個進程(由于全局解釋器鎖定,Python線程提供交錯但實際上是串行執行,而不是并行執行,并且僅在交錯I / O操作)。

但是,如果您只是在尋找交錯(或者正在進行可以并行化的I / O操作,盡管全局解釋器鎖定),那么線程模塊就是起點。作為一個非常簡單的例子,讓我們通過并行求和子范圍來考慮求和大范圍的問題:

import threadingclass SummingThread(threading.Thread):
     def __init__(self,low,high):
         super(SummingThread, self).__init__()
         self.low=low
         self.high=high
         self.total=0

     def run(self):
         for i in range(self.low,self.high):
             self.total+=i


thread1 = SummingThread(0,500000)thread2 = SummingThread(500000,1000000)thread1.start() # This actually causes the thread to runthread2
.start()thread1.join()  # This waits until the thread has completedthread2.join()  # At this point, both threads have completedresult =
thread1.total + thread2.totalprint result

請注意,上面是一個非常愚蠢的例子,因為它絕對沒有I / O,并且由于全局解釋器鎖,它將在CPython中以串行方式執行,盡管是交錯的(帶有上下文切換的額外開銷)。


查看完整回答
反對 回復 2019-05-29
  • 4 回答
  • 0 關注
  • 948 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號