当前位置:首页 > PHP教程 > php高级应用 > 列表

python进程与线程小结实例分析

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-01 15:12:49 浏览: 评论:0 

本文通过实例代码分析了python进程与线程知识小结,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧。

传统方式是调用2个方法执行1个任务,方法按顺序依次执行

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

多线程例子

2个线程同时并发执行1个任务

  1. # -*- coding:utf-8 -*- 
  2. import threading 
  3. import time 
  4. def run(n): 
  5.   print('task',n) 
  6.   time.sleep(3) 
  7.  
  8. if __name__ == '__main__': 
  9.   t1=threading.Thread(target=run,args=('t1',)) 
  10.   t2=threading.Thread(target=run,args=('t2',)) 
  11.   t1.start() 
  12.   t2.start() 

自己写一个类继承继承threading.Thread

  1. # -*- coding:utf-8 -*- 
  2. import threading 
  3. import time 
  4. class MyThread(threading.Thread): 
  5.   def __init__(self,n): 
  6.     super(MyThread,self).__init__() 
  7.     self.n=n 
  8.   #这里面默认就有一个run方法 
  9.   def run(self): 
  10.     print('runing task',self.n) 
  11. if __name__ == '__main__': 
  12.   #在主方法通过对象调用线程 
  13.   t1=MyThread('t1') 
  14.   t2=MyThread('t2') 
  15.   t1.run() 
  16.   t2.run() 

使用for循环启动多个线程

  1. # -*- coding:utf-8 -*- 
  2. import threading 
  3. import time 
  4. def run(n): 
  5.   print('task',n) 
  6.   time.sleep(3) 
  7. if __name__ == '__main__': 
  8.   for i in range(10): 
  9.     t=threading.Thread(target=run,args=('t-%s'%i,)) 
  10.     t.start() 

等多线程同时执行完后,再执行其它代码,因为线程是与其它代码一起运行的

  1. # -*- coding:utf-8 -*- 
  2. import threading 
  3. import time 
  4. def run(n): 
  5.   print('task',n) 
  6.   time.sleep(3) 
  7. if __name__ == '__main__'
  8.   time_start=time.time() 
  9.   #定义一个空列表装线程t实例 
  10.   t_objects=[] 
  11.   for i in range(10): 
  12.     t=threading.Thread(target=run,args=('t-%s'%i,)) 
  13.     t.start() 
  14.     t_objects.append(t) 
  15.   # 等所有线程执行完后,再执行下面的代码 
  16.   # 因为线程与下面的代码是同时运行的 
  17.   # 要想先等线程执行完毕再执行其它代码 
  18.   # 使用join()方法进行阻塞 
  19.   #在这里统一结束所有t线程 
  20.   for i in t_objects: 
  21.     t.join() 
  22.   time_end=time.time() 
  23.   sun=time_end-time_start 
  24.   print(sun)

Tags: python进程 python线程

分享到: