异步与非阻塞

异步

异步函数会在它执行完成之前返回,且在触发下一个动作之前会产生一些在后台完成的工作:

  • 回调参数
  • 返回一个占位符
  • 传送给一个队列
  • 回调注册表

阻塞

阻塞是指函数等待某事件的完成。可能导致一个函数阻塞的原因有非常多,如:

  • 网络I/O
  • 磁盘I/O
  • 互斥锁

事实上,任何一个函数都或多或少是阻塞的(即使是在使用CPU的条件下,一个极端的例子是CPU在做密码的哈希函数计算如bcrypt,需要消耗几百毫秒的时间,这已远超网络或磁盘I/O的请求时间了.)

你可能感兴趣的:(异步与非阻塞)