学习中心
登录
已解决
bio 和 nio的理解

老师麻烦帮忙看下两个问题

1。 关于bio nio的理解是否有误:

假设我这是4核

bio:

我的最大并行数是4,但应该支持更大的并发,在进行java io 操作的时候线程会进行wait,会把线程控制权让出给其他线程,所有的socket client 内容,都保存在各个线程中。

nio:

会抽1根线程出来里面有个while的epoll 队列 出来,当发起同步非阻塞io时,程序可以接着跑(除非我需要使用到他),直到我需要使用这个io 的返回值时,他也会阻塞当前线程.

2。如图我曾经使用过一个响应式服务端框架vertx 他是这么定义的,他提倡万物皆为事件驱动,并实现了各种非阻塞的客户端如数据库,redis,mq,http等,他的所有api都会做成非阻塞,并使用一个eventloop维护事件总线,之前我一直认为这是nio,但是之前老师讲到 听callback的形式其实是aio 所以我有点疑问,这个到底是nio还是aio 未命名文件.png

3。关于2题的rx系列框架是否有深入研究的必要,响应式框架我用下来解决一些 传统命令式开发模式的问题,但是也引入了一些问题,如 维护堆栈上下文日志(因为线程会飘来飘去甚至跑在了不同机器上),数据库的事务回滚变得异常的困难,ThreadLocal变得无法使用。

116 1
    1个回答
    你还没有查看该回答的权限哦~请先获取查看权限
    立即查看
    写回答