python免锁带来的收益(1),含爱奇艺,小米,腾讯,阿里

优化的方式

在代码中,是通过python的第三方库pyvmomi连接vSphere,连接认证之后,会返回连接对象,连接对象需要定时更新(更改)。收集数据时,也要使用连接对象获取数据。所以在更新连接对象和使用连接对象收集数据时,都加了锁。
在查询官网API说明之后,发现连接对象一般是30分钟左右更新一次。跟业务使用方核对后,业务方的要求是5分钟之内收集完数据,否则的话,放弃收集也可以。于是直接将更新连接对象的步骤去除,这样,使用连接对象来收集数据也不需要加锁,收集效率就提升上去了。
后来在网上看博客的时候,看到有些博客中,认为等号赋值操作,就是原子操作,不会造成数据安全问题,只有改变对象中多个属性的值,才有可能造成数据安全问题。我意识到直接将一个对象赋值给一个变量,即下面这样的代码,是不需要加锁,也可以保证原子操作。所以上述业务的老代码中,更新连接对象的操作,不用加锁,也是一个原子操作,是通过硬件的CPU原语来保证的,使用连接对象收集数据时,连接对象肯定是指向一个有效的地址:

# 对于connect\_obj来说,如果有另一个线程在使用connect\_obj,下面这行代码不会有多线程的数据安全问题,
# 因为等号'='的赋值操作是原子性的,是通过硬件来保障的。
connect_obj = get_connect_obj();



**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/b233991ae48ff039bc585d6c2f496962.png)
![img](https://img-blog.csdnimg.cn/img_convert/227b56ec6ebb7c188b0179ac55b52511.png)
![img](https://img-blog.csdnimg.cn/img_convert/0b5a35c35c795d727b70e39df8c63ae9.png)
![img](https://img-blog.csdnimg.cn/img_convert/fce08f1a6764a83b55b4dbcf756ec28d.png)
![img](https://img-blog.csdnimg.cn/img_convert/05aae71f461c655cf4a078507ccaa680.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)**
![img](https://img-blog.csdnimg.cn/img_convert/a8c296718ab236c313c8d7c9c01dab3e.jpeg)

...(img-tgyHqyip-1712543439249)]

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值