自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 优化单例里的懒汉模式并发性能

这样的逻辑就变成,访问单例时,第一步判断是否需要初始化实例对象,不需要的话立刻返回,如果需要则加互斥锁,第一个拿到互斥锁的初始化实例对象并返回,被锁阻塞住的对象一一进入创建锁的流程中,此处第二判断实例对象是否需要初始化,不是第一个拿到互斥锁的对象在这一次判断中直接返回实例对象,不需要初始化。先考虑单线程的情况。后面再次访问这个单例,由于第一次已经初始化过了,所以会直接返回已经生成的实例对象。单例模式的懒汉模式与饿汉模式的区别在于单例的生成时间,在系统启动时就生成的是饿汉模式,在运行时生成的是懒汉模式。

2023-08-09 10:21:44 79 1

原创 ETCD lease的 grantedTTL 无法修改,只能先撤销再申请

在更新 k-v操作前去更新lease,就算把相关的 key都删除了(最好一个 key 对应一个lease,不存在误删其他key的问题),也可以将 k-v 补回来,其他场景需考虑在更新 lease的时候是否需要撤销,该操作会导致该 lease 相关的 k-v 被删除。lease 一旦申请,只能执行自动过期、延期和撤销三类操作。该操作有个副作用,撤销 lease 后,绑定在该 lease 上的 key 都会被删除。要实现修改 grantedTTL的能力只能先撤销,再申请。

2023-08-07 12:14:42 77 1

原创 Python 交换元素顺序a,b=b,a存在的坑

交换两元素时a, b= b, a,左边的接收的a, b不是并行赋值的,是从左到右串行赋值的。a = [2, 3, 1, 0, 2, 5, 3]# 场景: 交换下标为0和a[0]的两个元素, 即交换下标为0和2的两个元素print("下标")print(0, a[0])print("取值")print(a[0], a[a[0]])a[0], a[a[0]] = a[a[0]], a[0]print(a)# 预期结果为 [1, 3, 2, 0, 2, 5, 3]# 实际结果为 [1, 2,

2022-05-12 10:20:59 578 1

转载 python的locals()和globals()函数

python的全局名字空间存储在一个叫globals()的dict对象中;局部名字空间存储在一个叫locals()的dict对象中。可以用print (locals())来查看该函数体内的所有变量名和变量值。...

2018-10-17 20:02:56 149

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除