【文件属性】:
文件名称:socketjava源码-demo-sockets-io-nio-nio2:“Java套接字I/O:阻塞,非阻塞和异步”文章和源代码
文件大小:194KB
文件格式:ZIP
更新时间:2021-05-25 21:28:36
系统开源
socket
java原始码Java套接字I
/
O:阻塞,非阻塞和异步
介绍
在描述I
/
O时,术语“非阻塞”和“异步”通常可以互换使用,但是它们之间存在显着差异。
本文描述了Java中非阻塞和异步套接字I
/
O操作之间的理论和实践差异。
套接字是通过TCP和UDP协议执行双向通信的端点。
Java套接字API是用于操作系统相应功能的适配器。
符合POSIX的操作系统(Unix,Linux,Mac
OS
X,BSD,Solaris,AIX等)中的套接字通信由Berkeley套接字执行。
Windows中的套接字通信由Winsock执行,
Winsock也是基于Berkeley套接字的,具有符合Windows编程模型的附加功能。
POSIX定义
本文使用了POSIX规范中的简化定义。
阻塞的线程-在可以继续执行之前正在等待某种条件的线程。
阻塞-套接字的属性,使套接字对其进行调用,以等待所请求的操作在返回之前执行。
非阻塞-套接字的一种属性,当检测到所请求的动作没有未知的延迟就无法完成时,套接字的调用将立即返回。
同步I
/
O操作-导致请求线程被阻塞直到该I
/
O操作完成的I
【文件预览】:
demo-sockets-io-nio-nio2-master
----gradlew(6KB)
----settings.gradle(46B)
----src()
--------main()
----gradle()
--------wrapper()
----README.md(23KB)
----gradlew.bat(3KB)
----.images()
--------config.txt(4KB)
--------blocking_IO_model.png(16KB)
--------non_blocking_IO_model.png(24KB)
--------asynchronous IO model.puml(420B)
--------signal-driven IO model.puml(534B)
--------IO_multiplexing_model.png(27KB)
--------fonts.puml(28B)
--------IO multiplexing model.puml(660B)
--------signal_driven_IO_model.png(21KB)
--------non-blocking IO model.puml(730B)
--------asynchronous_IO_model.png(19KB)
--------blocking IO model.puml(457B)
----.gitignore(397B)
----build.gradle(204B)