48、Nio(Io模型(异步(异步和同步)))

Nio(Io模型(异步(异步和同步)))

  1. 同步:线程自己去获取结果(一个线程)
  2. 异步:线程自己不去获取结果,而是线程去把结果给你(至少两个线程)

!!!场景:(完成一次数据交流)

电话是同步的:什么交数据交流,一来一回才叫交流。这里的要确定接电话就是获取结果(完成交流),这里是一个线程。

微信聊天是异步的:一个人发消息过来是一个线程,我们不用确定接不接消息。我们再回消息才是完成数据交流(两个线程)

!!!!我们这里是看前面的阻塞/非阻塞/多路复用是同步还是异步的。例如阻塞是同步的就是同步阻塞。

第一步:同步阻塞(阻塞io是同步的),是自己线程发起read,数据复制后还是给的前面的线程(自己得结果所以是同步的)

扫描二维码关注公众号,回复: 15559686 查看本文章

第二步:同步非阻塞(非阻塞io是同步的),最后复制数据后还是给了我们用户线程。(自己获取结果,是同步的)

第三步:多路复用还是同步的(比如说read,最后还是用户线程获取结果,所以还是同步的)

第四步:异步IO

1、Read后一个线程直接返回(是没有返回结果的)有一个回调方法(参数),另一个线程调用第一个线程的回调方法(返回真正的结果作为一个参数传回去)。

2、!!异步是没有阻塞的,只要异步非阻塞

猜你喜欢

转载自blog.csdn.net/logtcm4/article/details/127851445