首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >是否有任何理由使用Python threading.local()而不是ContextVar (在>= 3.7中)?

是否有任何理由使用Python threading.local()而不是ContextVar (在>= 3.7中)?
EN

Stack Overflow用户
提问于 2021-08-19 17:24:26
回答 1查看 738关注 0票数 7

Python的线程本地数据ContextVar似乎实现了相同的功能(而API略有不同),唯一的面向用户的区别是ContextVar使用异步代码(coroutines和异步),而线程本地数据不工作。

这真的是唯一的实际区别吗?

这是否意味着任何针对运行时>= 3.7 (引入ContextVar时)的代码最好使用ContextVar everywhere线程-本地数据可能在过去使用过?还是有理由更喜欢线程本地数据?(除了您特别希望将状态与线程而不是上下文关联的场景。)

EN

回答 1

Stack Overflow用户

发布于 2021-09-02 07:00:28

主要的问题,IMO,是“稍微不同的API”实际上是巨大的差异,虽然thread.local是简单的使用,ContextVars是一个低水平的痛苦(*),难以掌握和冗长的替代。

除此之外,ContextVars似乎是该走的路。

我正在编写一些代码来包装ContextVars,这样它们就可以作为替代工具了,但是生产还没有准备好。

如果有人感兴趣,该项目现在暂停,缺乏一些完善(文档,等等)。对于已发布的包,但它在:https://github.com/jsbueno/extracontext/中具有完全的功能。

(*)好的“痛苦”可能太主观了,但我发誓会有这种感觉,但这可能是因为我目前没有一个“真实世界”用例需要它,而我使用的人工示例只是过于人工地掌握实际的用例。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68856006

复制
相关文章
Android:SQLiteOpenHelper类(SQLlite数据库操作)详细解析
当我们完成了对数据库的操作后,记得调用SQLiteDatabase的close()方法释放数据库连接,否则容易出现SQLiteException。
Carson.Ho
2019/02/22
30.9K3
递归调用
一个函数在它的函数体内调用它自身称为递归调用,这种函数称为递归函数。执行递归函数将反复调用其自身,每调用一次就进入新的一层,当最内层的函数执行完毕后,再一层一层地由里到外退出。 递归必须是有推出条件的,如果没有,将会一直递下去,没有归。造成内存溢出崩溃。 先写一个简单的递归函数
用户7272142
2023/10/11
1980
递归调用
Android JNI 调用时的异常处理
可以看到异常的发生和处理基本都需要 Native 和 Java 交互,而对于 Native 自身出了异常,也就是 C/C++ 代码有问题,导致应用崩溃的又是另一回事了。
音视频开发进阶
2019/07/26
1.9K0
Carson带你学Android:SQLlite数据库操作全解析(SQLiteOpenHelper类)
###4.1 具体代码如下: 建议先下载Demo再进行阅读:Carson的Github:DataBase_Demo
Carson.Ho
2022/03/24
9940
Carson带你学Android:SQLlite数据库操作全解析(SQLiteOpenHelper类)
【Android】数据存储(三) 数据库(SQLite)
SQLite 前言 之前介绍过Android中保存数据的两种方式:SharedPreferences和File,这篇介绍另一种存储数据的方式——数据库。 数据库:简单来说可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 想必大家对数据库都不陌生,想当年上数据库课的时候,被那些命令整得不要不要的。 扯远了... 进入正题,在Android开发的过程中,保存数据是难免的。如果数据量较小的时候可用SharedPreferences或File来保存,当数据量较大
Gavin-ZYX
2018/05/18
1.2K0
js 递归调用
最近在做一个复杂表格设计数据格式设置,其中用到了多叉树的原理,所以要用到递归来实现数据格式化。
夜尽天明
2019/11/13
19K0
js 递归调用
[android] 手机卫士黑名单功能(列表展示)
先把要拦截的电话号码保存到数据库中,拦截模式用个字段区分,1 电话拦截,2 短信拦截,3全部拦截
唯一Chat
2019/09/10
6600
[android] 手机卫士黑名单功能(列表展示)
Java递归写法_java递归调用
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/02
1.6K0
oracle存储过程递归调用_函数的间接递归调用
注意:递归存储过程一般会用到 output 或 return,两者返回值类型上有一定的区别,output 基本上没有限制,但 return 返回的一般是 int 类型。
全栈程序员站长
2022/11/09
1.4K0
oracle存储过程递归调用_函数的间接递归调用
Android 存储学习之SQLite数据库的基本操作
本节学习SQLite数据库,SQLite是Android内置的一个简单的轻量级的数据库。关于SQLite的简介我这里不做过多的介绍。
DragonKingZhu
2022/05/08
4900
Android 存储学习之SQLite数据库的基本操作
Android | SQLite的使用
构建SQLiteOpenHelper实例后, 再调用他的getReadableDatabase()/getWritableDatabase()方法就能创建数据库了 (数据库文件会存放在/data/data/<package name>/databases/目录下)。 此时重写的onCreate()方法被执行(通常处理创建表的逻辑)。!!!!!!
凌川江雪
2019/06/11
1.6K0
android学习笔记----SQLite数据库
目录一二的增删改查源码地址:https://github.com/liuchenyang0515/CreateDB3
砖业洋__
2023/05/06
1K0
android学习笔记----SQLite数据库
Android SQLite数据库基本操作
程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数据库来实现一些需求的吧。
指点
2019/01/18
1.2K0
Android SQLite数据库基本操作
递归尾调用优化
尾调用(Tail Call)是函数式编程的一个重要概念,就是指某个函数的最后一步是return调用另一个函数。
wade
2020/04/24
7040
Android sqlite 使用简介
进行Android应用开发时经常会用到数据库。Android系统支持sqlite数据库,在app开发过程中很容易通过SQLiteOpenHelper使用数据库,SQLiteOpenHelper依赖于Context对象,但是基于uiatomator1.0和Java程序等无法获取Context的应用如何使用数据库呢?
霍格沃兹测试开发Muller老师
2022/06/07
5100
Android开发工程师文集-1 小时学会SQLite
大家好,我是 Vic,今天给大家带来Android开发工程师文集-1 小时学会SQLite的概述,希望你们喜欢
达达前端
2019/07/03
4270
利用SQLChiper对Android SQLite数据库加密
利用SQLChiper对Android SQLite数据库加密 前言: 上篇文章讲了Android studio+SQLCipher加密SQLite数据库的几个坑,跳过这几个坑,那么SQLCipher的前提就处理完成,本片文章接着讲如何使用SQLCiper加密数据库。
红目香薰
2022/11/29
9540
Android闹钟开发与展示Demo
  1、首先需要判断要查询的表是否存在,不存在则需要创建,判断表是否存在的方法如下:
JQ实验室
2022/02/09
1.5K0
3个一小时-学会Widget小组件开发,学会各种Drawable,学会SQLite
大家好,我是 Vic,今天给大家带来Android开发工程师文集-1 小时学会Widget小组件开发的概述,希望你们喜欢
达达前端
2022/04/29
5800
点击加载更多

相似问题

递归调用的getWritableDatabase

12

调用递归调用的getWritableDatabase/getReadableDatabase

22

java.lang.IllegalStateException:getWritableDatabase递归调用

21

上下文异常Android getWritableDatabase

16

getWritableDatabase的致命异常

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档