【Python零基础入门篇 · 32】:资源共享、全局变量和资源竞争,线程的同步,执行的任务有参数

简介: 【Python零基础入门篇 · 32】:资源共享、全局变量和资源竞争,线程的同步,执行的任务有参数

资源共享、全局变量和资源竞争


资源共享


下图读取只读到0的原因是当写入的时候睡眠了0.2s,这时,读取的函数rdate()就直接读取


9b08d429c91b47139958ac39944fec89.png


想要读取正常,可在wd.start()后加:time.sleep(1)或wd.join()

fbeaca9a24fd4e2f88805817a57237c9.png




全局变量和资源竞争


0e519590579245f59b32e3e8245eaebb.png



b的值如果比较小,没有资源竞争的问题;值大的话计算机计算不过来,延长时间更明显。

69325501164b4f6d9c15ae1fd8c92783.png



线程的同步


同步方式


  • 线程等待join


  • 互斥锁




同步的概念


有两个线程,线程A写入,线程B读取线程A写入的值,线程A先写入,线程B才能读取;线程A、B之间就是一种同步关系。


线程同步:主线程和创建的子线程之间各自执行完自己的代码直到结束。



互斥锁


概念


保证多个线程间共享数据不会出现数据错误问题;保证同一时刻只能有一个线程去操作。


使用方法


threading模块里面定义了Lock函数,通过调用这个函数可以获取到一把互斥锁。

acquire()——加锁 和 release()——解锁:这两个方法必须成对出现,不然会造成死锁现象。


死锁:一直等待对方释放锁的情况就是死锁。会造成应用的停止响应,不能处理其他任务了。


   注意:使用互斥锁的时候要再合适的地方释放锁


581f70ee214f4990ab76fa98a9d4174a.png


执行的任务有参数


通过args=() 向任务传入参数


96badc2321314f4caa3a319ea2f28468.png

相关文章
|
5月前
|
数据库连接 数据库 Python
Python上下文管理器:告别资源泄露的优雅之道
Python上下文管理器:告别资源泄露的优雅之道
177 3
|
5月前
|
供应链 并行计算 算法
1行Python搞定高频任务!26个实用技巧解决日常+进阶需求
本文整理了26个Python极简技巧,涵盖日常高频操作与进阶玩法,助你用最少代码高效解决问题,提升编程效率。适合各阶段Python学习者参考。
202 27
|
6月前
|
缓存 Java
线程池的核心参数
线程池七大参数解析:核心线程数决定常驻线程,最大线程数控制并发上限,存活时间管理非核心线程生命周期,工作队列缓存待处理任务,线程工厂定制线程属性,拒绝策略应对任务过载,提升系统稳定性与资源利用率。
359 1
|
Java 存储
线程池的核心参数有哪些?
线程池七大核心参数:核心/最大线程数、线程保持时间及单位、阻塞队列、线程工厂与拒绝策略。
1026 79
|
5月前
|
安全 数据库连接 Python
Python中的上下文管理器:优雅地管理资源
Python中的上下文管理器:优雅地管理资源
120 6
|
5月前
|
JSON 缓存 开发者
淘宝商品详情接口(item_get)企业级全解析:参数配置、签名机制与 Python 代码实战
本文详解淘宝开放平台taobao.item_get接口对接全流程,涵盖参数配置、MD5签名生成、Python企业级代码实现及高频问题排查,提供可落地的实战方案,助你高效稳定获取商品数据。
|
7月前
|
算法 数据可视化 数据挖掘
基于EM期望最大化算法的GMM参数估计与三维数据分类系统python源码
本内容展示了基于EM算法的高斯混合模型(GMM)聚类实现,包含完整Python代码、运行效果图及理论解析。程序使用三维数据进行演示,涵盖误差计算、模型参数更新、结果可视化等关键步骤,并附有详细注释与操作视频,适合学习EM算法与GMM模型的原理及应用。
|
9月前
|
API 开发工具 网络架构
【Azure Service Bus】使用Python SDK创建Service Bus Namespace资源(中国区)
本文介绍了如何使用Python SDK创建Azure Service Bus Namespace资源。首先,通过Microsoft Entra ID注册应用获取Client ID、Client Secret和Tenant ID,完成中国区Azure认证。接着,初始化ServiceBusManagementClient对象,并调用`begin_create_or_update`方法创建资源。
201 29
|
7月前
|
数据采集 Web App开发 iOS开发
解决Python爬虫访问HTTPS资源时Cookie超时问题
解决Python爬虫访问HTTPS资源时Cookie超时问题
|
8月前
|
XML JSON 安全
分析参数顺序对Python requests库进行POST请求的影响。
最后,尽管理论上参数顺序对POST请求没影响,但编写代码时仍然建议遵循一定的顺序和规范,比如URL总是放在第一位,随后是data或json,最后是headers,这样可以提高代码的可读性和维护性。在处理复杂的请求时,一致的参数顺序有助于调试和团队协作。
237 9

推荐镜像

更多