日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python線程的幾種創建方式詳解

系統 1794 0

Python3 線程中常用的兩個模塊為:

  • _thread
  • threading(推薦使用)

使用Thread類創建

            
import threading
from time import sleep,ctime
def sing():
  for i in range(3):
    print("正在唱歌...%d"%i)
    sleep(1)
def dance():
  for i in range(3):
    print("正在跳舞...%d"%i)
    sleep(1)
if __name__ == '__main__':
  print('---開始---:%s'%ctime())
  t1 = threading.Thread(target=sing)
  t2 = threading.Thread(target=dance)
  t1.start()
  t2.start()
  #sleep(5) # 屏蔽此行代碼,試試看,程序是否會立馬結束?
  print('---結束---:%s'%ctime())
"""
輸出結果:
---開始---:Sat Aug 24 08:44:21 2019
正在唱歌...0
正在跳舞...0---結束---:Sat Aug 24 08:44:21 2019
正在唱歌...1
正在跳舞...1
正在唱歌...2
正在跳舞...2
"""
          

說明:主線程會等待所有的子線程結束后才結束

使用Thread子類創建

為了讓每個線程的封裝性更完美,所以使用threading模塊時,往往會定義一個新的子類class,只要繼承threading.Thread就可以了,然后重寫run方法。

            
import threading
import time

class MyThread(threading.Thread):
  def run(self):
    for i in range(3):
      time.sleep(1)
      msg = "I'm "+self.name+' @ '+str(i) #name屬性中保存的是當前線程的名字
      print(msg)
if __name__ == '__main__':
  t = MyThread()
  t.start()
"""
輸出結果:
I'm Thread-5 @ 0
I'm Thread-5 @ 1
I'm Thread-5 @ 2
"""
          

使用線程池ThreadPoolExecutor創建

            
from concurrent.futures import ThreadPoolExecutor
import time
import os
def sayhello(a):
  for i in range(10):
    time.sleep(1)
    print("hello: " + a)
def main():
  seed = ["a", "b", "c"]
  # 最大線程數為3,使用with可以自動關閉線程池,簡化操作
  with ThreadPoolExecutor(3) as executor:
    for each in seed: 
      # map可以保證輸出的順序, submit輸出的順序是亂的
      executor.submit(sayhello, each)
  print("主線程結束")
if __name__ == '__main__':
  main()
          

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 电白县| 盱眙县| 平阴县| 蒲城县| 烟台市| 塔城市| 阿荣旗| 龙泉市| 通江县| 南部县| 元谋县| 思茅市| 遂宁市| 沛县| 怀仁县| 南部县| 柳林县| 津南区| 中西区| 剑阁县| 唐海县| 肇东市| 加查县| 哈巴河县| 富平县| 苗栗县| 开原市| 获嘉县| 定日县| 同仁县| 新乐市| 阿巴嘎旗| 谷城县| 琼海市| 青海省| 德令哈市| 土默特右旗| 连平县| 连城县| 临颍县| 青海省|