python线程
主线程与子线程#
常见方法#
t.start()#
t.join()#
示例1
示例2
示例3
可能会导致数据错误
t.setDaemon(布尔值)#
线程名称的设置和获取#
自定义线程#
锁#
线程安全#
一个进程中可以有多个线程,且线程共享所有进程中的资源。
多个线程同时去操作一个"东西”,可能会存在数据混乱的情况,例如:
示例一
示例二
如下情况不用加锁
线程锁#
在程序中如果想要自己手动加锁,一般有两种:Lock和RLock。
同步锁#
递归锁#
两者区别#
死锁#
死锁,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象。
死锁示例一
死锁示例二
线程池#
Python3中官方才正式提供线程池。
线程不是开的越多越好,开的多了可能会导致系统的性能更低了,例如:如下的代码是不推荐在项目开发中编写。
线程池示例#
shutdown()#
add_done_callback()#
最终统一获取结果#
案例-利用线程池下载图片#
版本一
版本二
作者:cloud-2-jane
出处:https://www.cnblogs.com/cloud-2-jane/articles/18581645
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
分类:
python进程、线程、异步
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架