如何理解异步被执行里面的执行对象?

对象A的工作work1 work2
同步执行:
A只能先干完work1,才能干work2;
异步执行:
A先干work1的一部分(没有做完),就可以干work2的一部分;

这里有一个问题:
A在执行work2的时候,不能执行work1,那么work1在被干的时候,是A在干还是说可以其他的对象干呢?

===

我这里说的异步,不是仅仅指的js中的异步,在其他语言里面也有异步;js中一般会把work1给其他的进程做,但是其他的语言呢?是否可以由A 频繁切换于work1和work2来做呢?

阅读 1.3k
2 个回答

如果你的work1是执行数据请求,那么浏览器会接管你发送请求后的事情,当数据返回后会通过一些方式通知到js回调。
Node.js中只有JS线程是单线程,底部还有其他线程池libuv。在执行中JS线程会把任务交给底部的libuv去执行耗时任务,同时注册回调任务,完成后,libuv通过回调函数通知JS线程。

怎么各种奇怪的问题都有...
你烧上水之后去开了洗衣机,那烧水和洗衣服这两件事算你干的吗?
如果你说算,那你的问题的答案就是是A干的。
如果你说不算,那你的问题的答案就是具体执行器干的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题