当前位置: 首页 / 技术分享 / 正文
好程序员Python培训分享进程与线程知识

2020-11-26

Python培训

  好程序员Python培训分享进程与线程知识,Python开发语言现在已经是被大家非常看中的编程语言了,本篇文章好程序员Python培训小编给读者们分享一下Python进程与线程知识小结,本篇文章具有一定的参考借鉴价值,感兴趣的小伙伴来了解一下吧,希望对小伙伴们有帮助。

Python2

传统方式是调用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)

  最后想要了解更多关于Python和人工智能方面内容的小伙伴,请关注好程序员Python培训官网、微信公众号等平台。

好程序员公众号

  • · 剖析行业发展趋势
  • · 分享大厂面试心得
  • · 汇聚企业项目源码
  • · 下载全套高精尖教程

好程序员开班动态

More+
  • HTML5大前端 <高端班>

    开班时间:2021-04-12(深圳)

    开班盛况

    开班时间:2021-05-17(北京)

    预约报名
  • 大数据+人工智能 <高端班>

    开班时间:2021-03-22(杭州)

    开班盛况

    开班时间:2021-04-26(北京)

    预约报名
  • JavaEE分布式开发 <高端班>

    开班时间:2021-05-10(北京)

    预约报名

    开班时间:2021-02-22(北京)

    开班盛况
  • Python人工智能+数据分析 <高端班>

    开班时间:2021-07-12(北京)

    预约报名

    开班时间:2020-09-21(上海)

    开班盛况
  • 云计算开发 <高端班>

    开班时间:2021-07-12(北京)

    预约报名

    开班时间:2019-07-22(北京)

    开班盛况
在线咨询
免费试听
入学教程
立即报名

Copyright 2011-2020 北京千锋互联科技有限公司 .All Right 京ICP备12003911号-5 京公安网11010802011455号