为了账号安全,请及时绑定邮箱和手机立即绑定

请教各位一个问题,关于异步问题,还是有点不理解?

请教各位一个问题,关于异步问题,还是有点不理解?

慕后森 2019-06-12 08:49:40
最近了解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个调用可以同时进行.
线程安全
以函数为例,线程安全意味着多个线程同时调用时,各个线程之间不会有冲突.
                            
查看完整回答
反对 回复 2019-06-12
?
喵喔喔

TA贡献1735条经验 获得超5个赞

这里有个前提是在业务逻辑层面,而系统IO通常都是同步。异步是调用发出后就直接返回了,结果要等被调用的状态或者回调通知。而常见result=some_function(xxx),显然是要等结果的,这样就无法直接支持异步调用。线程安全和异步显然不是一个意思。
                            
查看完整回答
反对 回复 2019-06-12
  • 2 回答
  • 0 关注
  • 77 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信