python高性能编程怎么样 Python编程从入门到实践

首先,选择操作系统高性能多任务编程需要选择合适的操作系统。因为子进程是在windows下通过重载py程序文件创建的;而linux和***c是通过***父进程的内存空来创建子进程的,所以在windows平台上运行多进程python程序的效率远不如linux和***c平台。如果想运行高性能多任务的pyth...

首先,选择操作系统

高性能多任务编程需要选择合适的操作系统。因为子进程是在windows下通过重载py程序文件创建的;而linux和***c是通过***父进程的内存空来创建子进程的,所以在windows平台上运行多进程python程序的效率远不如linux和***c平台。如果想运行高性能多任务的python程序,建议使用linux或***c操作系统。

二、任务类型的分析

编程高性能多任务处理有三种方式:

多进程,追求高运算:

任务类型:计算IO多和IO少时,建议使用进程池进行编程。进程池中的进程数量一般建议为CPU核心数量的一到两倍。多进程程序并行运行。

常见任务:科学计算、数据分析等。

注意:创建一个进程开销极高,进程间数据隔离,多个进程存在数据不安全,可以避免所有IO。

多线程,运用最多:

任务类型:IO较多,计算较少时,建议使用线程池进行编程。线程池中的线程数量一般建议为CPU核数的四至五倍,最多十倍。多线程程序并发执行(由于GIL锁,执行多线程时python无法并行执行)。

常见任务:爬虫等。

注意:创建线程开销小,线程间数据共享,多线程存在数据不安全,可以避免所有IO。

协程,追求高并发:

任务类型:当IO计算多计算少,需要大幅度增加并发数时,建议使用协程或者多进程+多线程+协程的方法。

常见任务:爬虫、web服务、web服务器等。

注意:创建一个协作进程的开销是最小的,数据在线程间共享,在多线程中没有数据不安全的问题,但是只有一些IO可以避免。

Python解释器的类型

目前应用最广泛的是CPython,这是一个用C语言实现的Python解释器。它也是官方的和使用最广泛的Python解释器。它的软件包和兼容性是最好的。CPython的最新版本是3.9.1。官网上是https://***.python.org/。

如果想追求高性能,目前推荐的解释器是PyPy。PyPy提供了JIT编译器和沙盒函数,所以运行速度比CPython快。它的软件包和兼容性都不如CPython。Pypy的最新版本是3.7。官网上是https://***.pypy.org/。

四。预防措施

高性能多任务编程使用线程池的方式最多。注意python线程编程的一个缺陷,就是无法在线程之外关闭已经超时的线程。因此,超时需要在任务内处理。在下面写一个简单的模拟爬行动物案例:

代码:

from concurrent.futures import ThreadPoolExecutorimport requestsurl = [('csdn', 'https://***.csdn.net/'), ('cnblogs', 'https://***.cnblogs.com/'), ('baidu', 'https://***.baidu.com/'), ('toutiao', 'https://***.toutiao.com/'), ('google', 'https://***.google.com/')]def get(site): try: r = requests.get(site[1], timeout=5) # 设置超时时限为5秒 except requests.exceptions.ConnectTimeout: return site[0], '超时' return site[0], '正常'if __name__ == "__***in__": p_list = [] with ThreadPoolExecutor(***x_workers=5) as e: ret = e.***p(get, url) for i in ret: print(f'网站“{i[0]}”下载情况是“{i[1]}”')

输出:

网站“csdn”下载情况是“正常”网站“cnblogs”下载情况是“正常”网站“baidu”下载情况是“正常”网站“toutiao”下载情况是“正常”网站“google”下载情况是“超时”

描述:

我们多任务需要的是get函数,用来下载网页。在get中,I/O操作要超时,即超过5秒得不到结果的网站放弃抓取。假设没有超时预测,会导致线程反复爬行,却始终得不到数据,陷入死循环,大大影响整体效率。

摘要:

由于python多线程无法从外部完成超时线程,因此在多任务编程中需要对函数内部可能出现的异常任务进行超时判断和处理。

本文来自醉红颜投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/579213.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 06-06
下一篇 06-06

相关推荐

  • 初学c语言学习编程软件 常用的C语言编程代码

    常见的编程语言有哪些?想学计算机编程的同学看过来!PHP语言PHP是士兵在web app上发力的一组武器之一。你可以在使用的过程中完成工作,但是看起来很乱。在编程语言中,PHP是不断更新的。c编程语言换句话说,C语言是我在边肖接触到的第一种计算机语言,性能目前只能算一般。c

    2023-07-25 22:38:01
    610 0
  • 西瓜创客编程怎么样(西瓜创客编程怎么编写代码)

    最近身边很多家长开始讨论要不要给孩子报编程班。看到别人都报名了,不想自己的孩子掉队,但是对编程课一窍不通。我想知道他们为什么要学编程课?你希望你的孩子将来成为程序员吗?其实我和很多家长都有同样的疑惑。经过3个多月的研究分析和咨询相关专家,我得出了以下关于编

    2023-07-22 05:01:01
    174 0
  • 编程工具有哪些常用的 中国自己的编程软件

    机器视觉是一门综合技术,包括图像处理、机械工程技术、控制、电光源照明、光学成像、传感器、模拟和数字视频技术、计算机软硬件技术(图像增强和分析算法、图像卡、I/O卡等。).一个典型的机器视觉应用系统包括图像采集、光源系统、图像数字化模块、数字图像处理模块、智能判断

    2023-07-20 11:58:01
    509 0
  • java编程用什么软件 java常用的编程软件

    初学者只需要使用一些开发工具就可以学习了。新手一般从控制台应用开发入手,在cmd下调试,为你的电脑搭建一个良好的开发环境。你需要从网站上下载JDK。安装完成后,调试成功后就可以开始编写Java程序了。边肖编译了一些Java开发工具如下:1。想法Java编程软件行业最好的Java开

    2023-07-14 17:15:01
    601 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信