首页 > 开发 > PHP > 正文

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

2024-05-04 22:41:56
字体:
来源:转载
供稿:网友

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

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

多线程例子

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

# -*- coding:utf-8 -*-import threadingimport timedef 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 threadingimport timeclass 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 threadingimport timedef 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 threadingimport timedef 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)

总结

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表