最近了解tornado框架,于是听人说了的这么一句话,python库并不是都支持异步的,好吧于是联想一下,可能说的是如果子线程或子进程同时在运行这段代码,不管怎么样,要么不会有同时在操作的变量,要么就是对这种的变量做了锁的处理,不知道到这里的支持异步和线程安全的代码是否想表达的是一个意思呢?
2 回答
HUH函数
TA贡献1836条经验 获得超4个赞
我理解的异步和线程安全是两个不同领域的概念.异步举个同步的例子f1()f2()f3()这种调用方式使得代码只能按顺序执行,假设f1-3调用耗时分别是1,2,3秒,那么执行完需要1+2+3=6秒.而异步调用可能是这样的task1=async_f1()task2=async_f2()task3=async_f3()gather(task1,task2,task3)这样执行完只需要3秒,因为3个调用可以同时进行.线程安全以函数为例,线程安全意味着多个线程同时调用时,各个线程之间不会有冲突.
喵喔喔
TA贡献1735条经验 获得超5个赞
这里有个前提是在业务逻辑层面,而系统IO通常都是同步。异步是调用发出后就直接返回了,结果要等被调用的状态或者回调通知。而常见result=some_function(xxx),显然是要等结果的,这样就无法直接支持异步调用。线程安全和异步显然不是一个意思。
添加回答
举报
0/150
提交
取消