惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Security Blog
Microsoft Security Blog
Jina AI
Jina AI
量子位
博客园 - 叶小钗
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
IT之家
IT之家
S
SegmentFault 最新的问题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
雷峰网
雷峰网
博客园 - 聂微东
美团技术团队
Last Week in AI
Last Week in AI
罗磊的独立博客
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园_首页
V
Visual Studio Blog
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog

会走路的三百块

会走路的三百块 会走路的三百块 其他 | 会走路的三百块 会走路的三百块 Unity-业务框架 | 会走路的三百块 其他 | 会走路的三百块 part 4 踩坑记录 | 会走路的三百块 Unity-进阶知识 | 会走路的三百块 Unity-天命6源码 | 会走路的三百块 CICD | 会走路的三百块 part 1 linux的历史节点 | 会走路的三百块 C的编译器 | 会走路的三百块 字符串常量存储 | 会走路的三百块 第三章 数据和C | 会走路的三百块 类型转换和缩减 | 会走路的三百块 零散知识点 | 会走路的三百块 DNS选择机制 | 会走路的三百块 网络八股Cache | 会走路的三百块 第三章-数据和C | 会走路的三百块 一些零散的知识点 | 会走路的三百块 自顶向下 | 会走路的三百块 linux简单速通 | 会走路的三百块 设计图的概述 | 会走路的三百块 AI和自动化暂存 | 会走路的三百块 第一章 初识C语言 | 会走路的三百块 Games101 | 会走路的三百块 Unity-Lua补充 | 会走路的三百块 Unity-个人Demo | 会走路的三百块 Unity-基础知识 | 会走路的三百块 Unity环境搭建 | 会走路的三百块
深入Python | 会走路的三百块
2026-05-25 · via 会走路的三百块

创建于 2022年5月23日 17:46:14 · 约634字

[ 📌Tip ]

深入这个概念和大数据是一样的,多深入才叫深入?
这里会放一些自觉比较深的知识点和技巧,有些时候会和踩坑联动

%%toc%%

深入理解 Python 异步编程(上) · GitHub

GC原理剖析 ​

^08132d #TODO GC看这里 Python垃圾回收机制!非常实用 - 知乎
记一次面试问题——Python 垃圾回收机制 · TesterHome
2小时吃透python内存管理和垃圾回收机制_哔哩哔哩_bilibili

环形数据结构 ​

著名的环形引用 Python 如何在环状数据结构中管理内存 - i'm jackey - i'm jackey

编译器相关扩展了解 ​

如果以后接触C的话可能就会再深入了解源码和python的机制
python语言编译原理相关的杂谈bilibili

网络编程详解 ​

异步进阶 ​

^347f89 异步的内容其实还有很多,这里只放已经收集到的
gevent的缺点,使用C实现底层协程,使用猴子将普通库打补丁,会导致有些错误无法捕捉

使用线程池异步 ​

有些时候外部接口只提供了阻塞方法,没有提供异步方法,还是需要使用线程,但是一般不是特别常用

Click to see more

python

import asyncio,time,random  
from concurrent.futures import ThreadPoolExecutor  
import socket  
from urllib.parse import urlparse  
  
def func(a):  
    # 阻塞方法  
    t=random.randint(0,5)  
    print("arg is %s"%a)  
    print("start sleep %s"%t)  
    time.sleep(t)  
    print("end sleep %s"%t)  
  
if __name__ == "__main__":  
    start_time = time.time()  
  
    loop = asyncio.get_event_loop()  
    executor = ThreadPoolExecutor(3) # 申请线程池  
    tasks = []  
    for i in range(0,20):  
        task = loop.run_in_executor(executor, func, i)  
        # 注意协程的这个函数,传入的是executor,返回是封装的Future对象,可以直接放在协程中使用  
        tasks.append(task)  
    loop.run_until_complete(asyncio.wait(tasks))  
  
    print("last time:{}".format(time.time()-start_time))

运行结果

arg is 0
start sleep 4
arg is 1
start sleep 4
arg is 2
start sleep 3
end sleep 3
arg is 19
start sleep 3
end sleep 4
end sleep 4
...

协程模块asyncio和gevent的基本使用_Generalzy的博客-CSDN博客

多进程异步 ​

这才是重点,因为GIL的原因多线程和异步没有耦合的必要,但是多进程+协程可以榨干CPU

twisted ​

gevent ​

混合编程 ​

起初是一个同学然你给我帮他java调用python,python调java,发现并不是很好用
go建议直接RPC

java混合编程 ​

C混合编程 ​

热加载 ​

python程序的热加载还是程序的热加载?

pythonic的约定 ​

Pythonic的方式全方位提升Python技能

python中一切皆对象的本质 # py的对象底层

GitHub - piglei/one-python-craftsman: 来自一位 Pythonista 的编程经验分享,内容涵盖编码技巧、最佳实践与思维模式等方面。

Blog | Piglei