ioserver

BIO/NIO/AIO总结(2)

白昼怎懂夜的黑 提交于 2021-01-17 16:54:59
BIO BIO (Blocking I/O)同步阻塞I/O模式,数据的读取写入必须阻塞在一个线程内等待其完成。 传统BIO BIO通信(一请求一应答)模型图如下: 采用 BIO 通信模型 的服务端,通常由一个独立的 Acceptor 线程负责监听客户端的连接。我们一般通过在while(true) 循环中服务端会调用 accept() 方法等待接收客户端的连接的方式监听请求,请求一旦接收到一个连接请求,就可以建立通信套接字在这个通信套接字上进行读写操作,此时不能再接收其他客户端连接请求,只能等待同当前连接的客户端的操作执行完成, 不过可以通过多线程来支持多个客户端的连接,如上图所示。 该模型最大的问题就是缺乏弹性伸缩能力,当客户端并发访问量增加后,服务端的线程个数和客户端并发访问数呈1:1的正比关系,由于线程是JAVA虚拟机非常宝贵的系统资源,当线程数膨胀之后,系统的性能将急剧下降,随着并发访问量的继续增大,系统会发生线程堆栈溢出、创建新线程失败等问题,并最终导致进程宕机或者僵死,不能对外提供服务。 传统BIO的弊端有很多: 1.性能问题:一连接一线程模型导致服务端的并发接入数和系统吞吐量受到极大限制; 2.可靠性问题:由于I/O操作采用同步阻塞模式,当网络拥塞或者通信对端处理缓慢会导致I/O线程被挂住,阻塞时间无法预测; 3.可维护性问题:I/O线程数无法有效控制、资源无法有效共享

PROFIBUS DP与Modbus/TCP网络转换操作指南(下)

偶尔善良 提交于 2020-08-17 05:20:21
上篇文章我们介绍了一些常用网关和网关配置软件的安装;这文章我们介绍一下相关网关参数的设置和网关的诊断。 本文以NT100-RE-DP网关为例,实现Modbus/TCP Client与PROFIBUS DP设备间的通讯,从而将PROFIBUS DP从站集成到Modbus/TCP网络中。下面将逐步演示该网关的配置步骤,其余同系列型号网关的配置步骤与此类似 网关参数设置 (1)当网关USB设备驱动和配置工具SYCON.net 都安装成功后,使用USB线缆连接NT 100与计算机,并打开SYCON.net,选择“File”“New”新建配置工程,出现如图所示界面: (2)在软件界面右侧选择“Fieldbus”栏,将PROFIBUS DPV 0,Gateway / Stand-Alone Slave 文件夹中的NT 100-XX-XX 图标(代表网关)拖放至中间区域的灰线下方,如图所示: (3)双击该图标,弹出配置对话框,选择“netX Driver”栏中“USB/RS232Connection”页,确保“Enable USB/RS232 Conector”前已经打勾。在电脑设备管理器中确认USB所对应的COM端口,然后在此页面设置COM端口号,波特率等,完成后单击“Save”保存。如图所示: (4)选择“Device Assignment”栏,单击 Scan 按钮,扫描到网关硬件