python - threading.local
2024-08-24 09:49:47
import time
import threading
try: # 线程和协程都可处理
import greenlet
get_ident = greenlet.getcurrent
except Exception as e:
get_ident = threading.get_ident class Local(object):
"""
通过进程号/协程号的唯一标识,给每一个进程/协程开辟自己个空间,实现数据隔离
"""
DIC = {} def __getattr__(self, item):
ident = get_ident()
if ident in self.DIC:
return self.DIC[ident].get(item)
return None def __setattr__(self, key, value):
ident = get_ident()
if ident in self.DIC:
self.DIC[ident][key] = value
else:
self.DIC[ident] = {key: value} obj = Local() def fn(i):
obj.x1 = i
time.sleep(2)
print(obj.x1,i) for i in range(10):
t = threading.Thread(target=fn,args=(i,))
t.start()
最新文章
- Jquery EasyUI 开发实录
- plain framework 1 一款主要用于网络(游戏)开发的C/C++开源框架 安装篇 updated
- .net core 源码解析-web app是如何启动并接收处理请求(二) kestrel的启动
- Google Chrome input 设置 line-height 后光标变得和input一样高
- Android 高级UI设计笔记14:Gallery(画廊控件)之 3D图片浏览
- 一个实际的sonar代码检查的配置文件
- .NET程序编译原理
- 短信验证码js实现
- jQuery_小测试
- 微信小程序 登录流程规范解读
- mysql 性能优化常见命令
- WPF 使用DMSkin for WPF 快速搭建漂亮的WPF程序
- 作为开发人员,这四类Code Review方法你都知道吗?
- Which Queue Pair type to use?
- Generative Adversarial Nets[LSGAN]
- sudALSA lib dlmisc.c:236:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib/alsa-lib/libasound_module_pcm_pulse.so
- asp.net mvc 中[Authorize]在IE9以上版本关于FormsAuthentication.SetAuthCookie无效的问题 解决方案
- SQL GROUP BY对多个字段进行分组
- stl中的transform()注意其与for_each的不同点(有无返回值)
- cron表达式增加一段时间变为新的表达式