-
子线程异常无法被主线程直接捕获,需在子线程内处理或通过队列、Future等机制传递异常信息。1.每个线程独立运行,未捕获的异常仅终止该线程;2.可使用queue.Queue将异常传回主线程;3.推荐concurrent.futures模块,其Future.result()会重新抛出异常;4.自定义threading.excepthook(Python3.8+)可统一记录线程异常;5.必须主动收集异常,避免静默失败。
-
多进程处理海量数据的关键在于合理拆分任务、轻量传递数据、可靠归集结果和精准控制资源。需按文件/时间/ID等维度切片,避免大对象序列化,优先传路径或参数,用临时文件或Queue汇总,进程数设为CPU核数附近,并限制单进程任务量。
-
PostgreSQL中insert().on_conflict_do_update()不返回行数,需用RETURNING子句配合fetchall()计数;MySQL依赖rowcount(需exec_driver_sql);SQLite用changes();ORM中避免merge(),应使用returning()。
-
本文介绍在Python中使用正则表达式精准匹配“井号#之前不出现完整单词abc、def或ghi”的字符串,通过负向先行断言与字符类组合实现语义化过滤。