传统方式是调用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_ s=[]
  for i in range(10):
    t=threading.Thread(target=run,args=(\'t-%s\'%i,))
    t.start()
    t_ s.append(t)
  # 等所有线程执行完后,再执行下面的代码
  # 因为线程与下面的代码是同时运行的
  # 要想先等线程执行完毕再执行其它代码
  # 使用join()方法进行阻塞
  #在这里统一结束所有t线程
  for i in t_ s:
    t.join()
  time_end=time.time()
  sun=time_end-time_start
  print(sun)

总结

以上所述是小编给大家介绍的python进程与线程小结实例分析,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

收藏 打印