![](https://img-blog.csdnimg.cn/445af78d96e94320aae488219742ec85.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
高性能Python编程
文章平均质量分 88
主要讲解Python多线程, 多进程、异步编程、高并发、缓存、Cython, ctypes,编译器加速等技术。
__弯弓__
追求精益学习,不断提升能力边界,发优质博文,分享软件开发知识
展开
-
RabbitMQ 各种通信模式的Python实现
本文介绍了RabbitMQ消息队列的原理,组件,用python连接RabbitMQ的 生产者-消费者模式,任务队列模式,发布订阅模式、路由模式、RPC调用等。原创 2024-04-16 23:45:27 · 1088 阅读 · 4 评论 -
Python标准库 subprocess 模块多进程编程详解
本文主要介绍python 标准库 subprocess 模块创建子进程的各种用法 (1) 用 subprocess.run() 方法创建子进程 , (2) stdin, stdout,stderr 的配置,以及管道 Pipe 使用 (3) Popen API使用, 如何创建Popen对象,如何查询进程状态,中止进程 (4)进程之间通信, 使用stdin 传入数据,通过comunicate() 方法获取输出(5) ascynio 异步执行子进程原创 2023-11-09 13:29:29 · 7980 阅读 · 1 评论 -
由浅入深掌握Python多线程原理与编程步骤
本文以实例代码形式,讲解多线程 multithreading,,全局锁GIL原理,多线程编程基本步骤 ,threading模块 Thread 属性、方法、公共函数,以函数式,类的方式创建线程,线程生命周期管理,如何处理子线程异常 thread exception,最后讲解了高并发线程池ThreadPoolExecutor异步编程技术原创 2023-04-10 13:33:29 · 6351 阅读 · 1 评论 -
Python select 编程单线程轻松处理每秒万条请求
在并发场景中,如果使用线程池,或多进程进行并发处理,会占用过多的系统资源。这时可以考虑采用操作系统的 select 技术来处理。select 能监听的socket文件描述符,监听的socoket产生事件,即会自动执行相应处理函数,如接送或发送。当soket的客户端数量在5000以下,使用select是很合适的。但如果链接客户端过多,select采用的是轮询模型,服务器响应效率不高。应该采用epoll,或者用asyncio异步编程。原创 2023-07-13 13:50:04 · 552 阅读 · 0 评论 -
Python异步编程并发执行爬虫任务,用回调函数解析响应
本文介绍了Python 异步编程技术asyncio ,使用场景,介绍了同步编程,异步编程原理,异步技术的优势,异步语法 async await, 协程,create_task, gather, event loop, asyncio.run() 等,用回调函数callback 来解析响应消息,实例场景:同时爬取多个网站数据,爬虫,分别提供了同步编程实现代码,使用 asyncio 异步编程实现的完整代码,最后总结了异步编程的不足以及注意事项原创 2023-09-19 22:37:05 · 699 阅读 · 0 评论 -
由浅入深掌握各种 Python 进程间通信方式(建议收藏)
介绍 python multiprocessing 多进程模块提供的各类通信方式的数据结构 、原理、以及使用步骤,包括Pipe管道通信,Queue队列通信,Lock共享锁,Event同步事件,SharedMemory 共享变量Value, Array, SharedMomory 模块共享内存,最后介绍了使用共享内存管理器Manager的原理与使用,确保进程通信的安全。原创 2023-02-18 14:41:03 · 7429 阅读 · 3 评论 -
用Numba加速OpenCV Python视频处理代码,提升6.5倍性能
Numba是1个Python编译器,主要功能是对数组类型(Array, Numpy, bytes等)、数值类型的函数进行加速,支持GPU计算,以及能避开GIP限制。使用只须加入简单的导入与函数装饰器代码即可,非常方便。本文介绍了Numba的安装与使用,以及通过实例视频处理代码来比较,对于 OpenCV显示与处理视频流的代码,Numba 优化后的速度提升了6.5倍。原创 2023-02-09 11:58:06 · 3250 阅读 · 0 评论 -
Python使用Cython实例,速度提升150倍以上
Cython是Python编程语言的一个超级集,它在Python和C/C++之间起着中间人的作用。Cython 允许python 与 C 风格代码混合编程,将C语句代码编译为静态格式,Python解释器运行时动态调用。本文介绍了如何用cython编译入门知识,编译步骤,通过实例 ,与纯Python函数比较。原创 2023-04-27 22:21:21 · 3367 阅读 · 3 评论 -
cython3.0文档中文版
Cython是 Python的扩展,像胶水一样将C语言与Python结合一起,从而让cython项目同时利用python高效的编程,以及C/C++高性能的两者优点,说python程序性能差的言论可休矣。总之,Cython是python生态的重要组成部分,网友飞龙将其翻译成了中文。 附带了学习Cython的参考代码原创 2023-01-11 10:52:16 · 452 阅读 · 0 评论 -
如何使用Python内置缓存装饰器: @lru_cache,@cache 与 @cached_property
Python 的内置库 functools 模块附带了@lru_cache,@cache, @cached_property 装饰器,可用于在代码中,对函数运算结果,类成员方法运算结果,进行缓存。上例中,每次运行函数时,lru_cache都会检查输入,如果之前运行过,则从缓存中返回结果 ,如果没有,则运行函数,并缓存结果。本文介绍了3种缓存工具的使用步骤,最后总结了对应的适用场景建议。原创 2023-06-28 12:41:32 · 9676 阅读 · 1 评论 -
最受欢迎的7个Python解释器
讲述了7个python解释器,Python编译器1. CPython2. PyPy3. cython4. Stackless Python5. Jython6. IronPython7. Numba原创 2022-11-25 20:23:24 · 4683 阅读 · 0 评论 -
python多线程编程:如何优雅地关闭线程
Python 多线程编程中, Threading中的Thread类并没有提供关闭线程的方法、经常会遇到中止主线程时,子线程仍然在运行。那么应该如何正确关闭线程、停止线程呢?提供了两种方式:1种用 线程通信 Event 类方式中止线程,另1种是利用全局状态变量来中止线程,都可以优雅地关闭线程,自动关闭线程,避免丢失数据,文件未关闭等异常,原创 2022-12-18 14:45:39 · 46512 阅读 · 9 评论 -
python多线程编程: 如何暴力但不失优雅地关闭线程
本文介绍,利用python signal 信号机制,自定义异常类,支持按 Ctrl+C, kill -9 等强制退出程序时,安全地退出线程。 关键词: Python 多线程编程,中止线程,关闭线程,暴力关闭程序,Python 信号机制1, Ctrl+C退出原创 2023-09-08 23:07:07 · 1265 阅读 · 0 评论