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