全国服务热线:400-6136-679

位置:贵阳达内教育IT培训机构 > 学校动态 > 疫情后Python并发编程的实际应用

疫情后Python并发编程的实际应用

来源:贵阳达内教育IT培训机构时间:2021/10/7 10:13:37

  疫情后Python并发编程的实际应用
  Python的并发编程的实现方式有很多种,主要就是多线程方式,多进程方式,远端分布式主机和伪线程这四种方式,我在前面的文章里想习的介绍了这四种实现方式的使用方法,现在我们一起来看一下Python的并发编程的实际使用情况。
  通常需要用到并发的场合有两种,一种是计算密集型,也就是说你的程序需要大量的CPU资源;另一种是IO密集型,程序可能有大量的读写操作,包括读写文件,收发网络请求等等。
  计算密集型
  针对计算密集度的应用,我们选择了的蒙特卡洛算法进行PI计算。
  在计算圆周率时,蒙特卡洛算法是利用统计原理来模拟圆周率的,即在1/4圆区域内随机点(红点)的概率与其面积成正比。这一概率p=Pi*R*R/4:R*R,其中,R是正方形的边长,圆的半径。根据这一结论,如果我们模拟出圆周率的1/4,那么就可以知道圆周率,如果我们模拟出1/4圆上的点的概率,就可以知道圆周率的概率了,我们可以通过大量的实验,即产生大量的点,来确定点的位置,然后计算出结果。
  此处测试方法要做n个试验,返回1/4圆中点的数目。判别方法是检查这个点到圆心的距离,如果小于R为圆心。
  利用大量并行性,我们可以地进行多次测试,测试的次数越多,结果就越接近实际的圆周率。

  在此提供了不同并发方法的程序代码。

疫情后Python并发编程的实际应用

  非并发
  首先是单线程,然后该进程运行,查看性能。
  多线程
  要使用线程池,我们使用多线程处理的dummy包,这是一个多线程的封装。请注意,尽管这段代码没有提及线程,但它是多线程。
  经过测试我们满意的发现,果然不出所料,当线程池为1是它运行的结果与没有并发时一样,当我们将线程池数字设置为5时,所需时间大约是没有并发时的2倍,测试数据在5秒到9秒之间。因此,对于计算密集的任务,还是不要使用多线程。
  多进程
  对于计算密集型的任务,理论上更适合使用多进程并发,在下面的例子中,进程池的规模被设置为5,修改进程池的大小将会对结果产生的影响,当进程池被设置为1时,与多线程的结果所需的时间相似,因为此时并不存在并发;设置为2时,响应时间有了明显的改善,比以前没有并发的一半多;但是继续扩展进程池对性能的影响并不大,甚至有所下降,也许我的AppleAir的CPU只有两个核?
  请注意,如果您设置了一个非常大的进程池,您会遇到Resourcetemporarilyunavailable的错误,系统无法支持创建太多进程,毕竟资源有限。
领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/3844/news/418958/违者必究! 以上就是贵阳达内教育IT培训机构 小编为您整理 疫情后Python并发编程的实际应用的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-6136-679