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)
© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论