Python 的线程本地数据和ContextVars 似乎实现了相同的事情(虽然 API 略有不同),唯一面向用户的区别是ContextVars 可以使用异步代码(协程和异步),而线程本地数据则不能。
这真的是唯一实际的区别吗?
这是否意味着任何针对运行时> = 3.7(何时ContextVar引入)的代码最好使用ContextVar过去可能使用过的线程本地数据?还是有理由更喜欢线程本地数据?(除了您特别希望将状态与线程而不是上下文相关联的情况。)
Python 的线程本地数据和ContextVars 似乎实现了相同的事情(虽然 API 略有不同),唯一面向用户的区别是ContextVars 可以使用异步代码(协程和异步),而线程本地数据则不能。
这真的是唯一实际的区别吗?
这是否意味着任何针对运行时> = 3.7(何时ContextVar引入)的代码最好使用ContextVar过去可能使用过的线程本地数据?还是有理由更喜欢线程本地数据?(除了您特别希望将状态与线程而不是上下文相关联的情况。)