Рубрики
Uncategorized

Анализ сводных случаев процессов и потоков Python

Автор оригинала: David Wong.

Традиционно для выполнения одной задачи вызываются два метода, и методы выполняются последовательно.

# -*- coding:utf-8 -*-
import threading
import time
def run(n):
  print('task',n)
  time.sleep(3)
if __name__ == '__main__':
  run('t1')
  run('t2')

Многопоточный пример

Два потока выполняют одну задачу одновременно

# -*- 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()

Напишите потоковое наследование наследования класса. Нить

# -*- coding:utf-8 -*-
import threading
import time
class MyThread(threading.Thread):
  def __init__(self,n):
    super(MyThread,self).__init__()
    self.n=n
  # There is a run method by default.
  def run(self):
    print('runing task',self.n)
if __name__ == '__main__':
  # Calling threads through objects in the main method
  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()
  # Define an empty list loader thread t instance
  t_objects=[]
  for i in range(10):
    t=threading.Thread(target=run,args=('t-%s'%i,))
    t.start()
    t_objects.append(t)
  # After all threads are executed, the following code is executed
  # Because the thread runs at the same time as the following code
  # To wait for the thread to finish executing before executing other code
  # Blocking using join () method
  # Unified termination of all t threads here
  for i in t_objects:
    t.join()
  time_end=time.time()
  sun=time_end-time_start
  print(sun)

резюме

Выше приведен пример анализа сводки процессов и потоков Python, представленный редактором Xiaobian. Я надеюсь, что это будет полезно для вас. Если у вас есть какие-либо вопросы, пожалуйста, оставьте мне сообщение. Редактор Сяобянь ответит вам вовремя.