Python程式與執行緒知識

好程式設計師發表於2020-11-26

   好程式設計師Python 培訓分享程式與執行緒知識 Python 開發語言現在已經是被大家非常看中的程式語言了,本篇文章給讀者們分享一下 Python 程式與執行緒知識小結,本篇文章具有一定的參考借鑑價值,感興趣的小夥伴來了解一下吧,希望對小夥伴們有幫助。

傳統方式是呼叫2 個方法執行 1 個任務,方法按順序依次執行:

# -*- coding:utf-8 -*-

import threading

import time

def run(n):

  print('task',n)

  time.sleep(3)

if __name__ == '__main__':

  run('t1')

  run('t2')

 

多執行緒例子

 

2 個執行緒同時併發執行 1 個任務:

 

# -*- coding:utf-8 -*-

import threading

import time

def run(n):

  print('task',n)

  time.sleep(3)

 

if __name__ == '__main__':

  t1=threading.Thread(target=run,args=('t1',))

  t2=threading.Thread(target=run,args=('t2',))

  t1.start()

  t2.start()

 

自己寫一個類繼承繼承threading.Thread

 

# -*- coding:utf-8 -*-

import threading

import time

class MyThread(threading.Thread):

  def __init__(self,n):

    super(MyThread,self).__init__()

    self.n=n

  # 這裡面預設就有一個 run 方法

  def run(self):

    print('runing task',self.n)

if __name__ == '__main__':

  # 在主方法透過物件呼叫執行緒

  t1=MyThread('t1')

  t2=MyThread('t2')

  t1.run()

  t2.run()

 

使用for 迴圈啟動多個執行緒

 

# -*- coding:utf-8 -*-

import threading

import time

def run(n):

  print('task',n)

  time.sleep(3)

if __name__ == '__main__':

  for i in range(10):

    t=threading.Thread(target=run,args=('t-%s'%i,))

    t.start()

 

 

等多執行緒同時執行完後,再執行其它程式碼,因為執行緒是與其它程式碼一起執行的

 

# -*- coding:utf-8 -*-

import threading

import time

def run(n):

  print('task',n)

  time.sleep(3)

if __name__ == '__main__':

  time_start=time.time()

  # 定義一個空列表裝執行緒 t 例項

  t_objects=[]

  for i in range(10):

    t=threading.Thread(target=run,args=('t-%s'%i,))

    t.start()

    t_objects.append(t)

  # 等所有執行緒執行完後,再執行下面的程式碼

  # 因為執行緒與下面的程式碼是同時執行的

  # 要想先等執行緒執行完畢再執行其它程式碼

  # 使用 join() 方法進行阻塞

  # 在這裡統一結束所有 t 執行緒

  for i in t_objects:

    t.join()

  time_end=time.time()

  sun=time_end-time_start

  print(sun)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2737329/,如需轉載,請註明出處,否則將追究法律責任。

相關文章