当前位置: 首页 > news >正文

网站开发设计作业及代码凡科建站代理登录

网站开发设计作业及代码,凡科建站代理登录,好男人hd免费观看,租空间做网站参考:《Python核心编程》 threading 模块的Thread 类是主要的执行对象,而且,使用Thread类可以有很多方法来创建线程,这里介绍以下两种方法: 创建 Thread 实例,传给它一个函数。派生 Thread 的子类&#xf…

参考:《Python核心编程》
threading 模块的Thread 类是主要的执行对象,而且,使用Thread类可以有很多方法来创建线程,这里介绍以下两种方法:

  • 创建 Thread 实例,传给它一个函数。
  • 派生 Thread 的子类,并创建子类的实例。

如果是有面向对象接口需求的,第二种方法更加符合。

1、创建Thread的实例,传给它一个函数

示例代码:

from threading import Thread
from time import sleep, ctimeloops = [4, 2]def loop(nloop, nsec):print("start loop ", nloop, " at ", ctime())sleep(nsec)print("nloop ", nloop, " done at ", ctime())def main():threads = []print("starting at: ", ctime())# create all threadsfor i in range(len(loops)):t = Thread(target=loop, args=(i, loops[i]))threads.append(t)# start threadfor i in range(len(loops)):threads[i].start()# wait for all threads to finishfor i in range(len(loops)):threads[i].join()print("all DONE at: ", ctime())if __name__ == "__main__":main()

执行脚本:

$ python myThread.py 
starting at:  Sat Jan 20 17:22:28 2024
start loop  0  at  Sat Jan 20 17:22:28 2024
start loop  1  at  Sat Jan 20 17:22:28 2024
nloop  1  done at  Sat Jan 20 17:22:30 2024
nloop  0  done at  Sat Jan 20 17:22:32 2024
all DONE at:  Sat Jan 20 17:22:32 2024
  • 在上述代码中,当实例化每个 Thread 对象时,把函数(target)和参数(args)传进去,然后得到返回的 Thread 实例。实例化 Thread 后,线程不会立即开始执行,而是把启动的指挥权交给程序员,这是一个非常有用的同步功能,尤其是当你并不希望线程开始立即执行时。
  • 当所有线程都分配完成之后,通过调用每个线程的 start()方法让它们开始执行。
  • join()方法将等待当前(或所有)线程结束后再往下执行。一旦线程启动,它们就会一直执行,直到给定的函数完成后退出。如果主线程还有其他事情要去做,而不是等待这些线程完成(例如其他处理或者等待新的客户端请求),就可以不调用 join()。join()方法只有在你需要等待线程完成的时候才是有用的。比如,如果将 join() 方法所在的 for 循环注释掉,那么执行脚本后将会得到下面这样的结果:
$ python myThread.py 
starting at:  Sat Jan 20 17:45:16 2024
start loop  0  at  Sat Jan 20 17:45:16 2024
start loop  1  at  Sat Jan 20 17:45:16 2024
all DONE at:  Sat Jan 20 17:45:16 2024
nloop  1  done at  Sat Jan 20 17:45:18 2024
nloop  0  done at  Sat Jan 20 17:45:20 2024

2、派生 Thread 的子类,并创建子类的实例

当创建线程时使用子类要相对更容易阅读,而且如上所述,当你需要一个更加符合面向对象的接口时,
会选择这种方法。下面的示例中将对 Thread 子类化,而不是直接对其实例化。这将使我们在定制线程对象时拥有更多的灵活性,也能够简化线程创建的调用过程。
示例代码:

from threading import Thread
from time import sleep, ctimeloops = [4, 2]class MyThread(Thread):def __init__(self, func, args, name=''):Thread.__init__(self)   # 调用基类构造方法self.func = funcself.args = argsself.name = namedef run(self):self.func(*self.args)def loop(nloop, nsec):print("start loop ", nloop, " at ", ctime())sleep(nsec)print("loop ", nloop, "done at ", ctime())def main():threads = []# 创建线程for i in range(len(loops)):t = MyThread(func=loop, args=(i,loops[i]), name=loop.__name__)threads.append(t)# 启动线程for i in range(len(loops)):threads[i].start()# 等待所有线程执行完毕for i in range(len(loops)):threads[i].join()print("all DONE at ", ctime())if __name__ == "__main__":main()

执行脚本:

$ python myThread2.py 
start loop  0  at  Sat Jan 20 18:49:51 2024
start loop  1  at  Sat Jan 20 18:49:51 2024
loop  1 done at  Sat Jan 20 18:49:53 2024
loop  0 done at  Sat Jan 20 18:49:55 2024
all DONE at  Sat Jan 20 18:49:55 2024
  • MyThread 子类的构造函数必须先调用其基类的构造函数。
  • 当创建新线程时,Thread 类的代码将调用 MyThread 对象,此时会调用__run__()这个特殊方法。

补:Thread 对象的属性和方法
在这里插入图片描述在这里插入图片描述

http://www.shuangfujiaoyu.com/news/22316.html

相关文章:

  • 模板网站建设方案seo推广优化排名软件
  • 网站开发存在的风险推广计划书范文
  • 沈阳制作公司网站最好用的免费建站平台
  • 政府门户网站建设策划怎么优化一个网站
  • 找人做个网站需要多少钱网站设计需要什么
  • google网站怎么做流量百度文库网页版登录入口
  • 做医疗网站需要百度seo关键词排名查询
  • 无锡响应式网站建设教育培训网站
  • 网站运营名词解释建一个外贸独立站大约多少钱
  • 个人建设门户网站 如何备案合肥网站制作
  • 月夜影院网站自然排名怎么优化
  • 沧州高端网站建设杭州seo整站优化
  • 苏州设计网站建设域名查询工具
  • 合肥哪家公司做网站网站快速排名优化
  • 套模板的网站多少钱seo关键词排名怎么提升
  • 做污事网站郑州seo优化顾问热狗
  • 众筹那些网站可以做网站排名优化软件联系方式
  • 中企网站建设站长工具查询网站信息
  • 怎么做网站的内链国际新闻网
  • 做英文网站要请什么样的人做淘宝关键词怎么选取
  • 网站开发语言在那看出来济南做网站公司哪家好
  • 合肥百度 网站建设最近国际新闻大事20条
  • 如何修改asp网站网络推广100种方式
  • 山河建设有限公司网站防疫管控优化措施
  • 郑州网站制作工作室环球资源网站网址
  • 做食品行业网站短视频推广策略
  • 网站设置的参数重庆seo技术教程博客
  • 做网站编辑是不是也要做推广推广优化seo
  • 网站建设 js抖音推广引流平台
  • 芸志建站怎么建立网站网站建设维护