阻塞、非阻塞SOCKET
阻塞、非阻塞SOCKET是指当调用接口时,当条件不满足时是否立即返回。
例如:TCP SOCKET,connect时发送SYN,未收到SYNACK时是否立即返回。对于阻塞SOCKET会在连接建立后返回,对于非阻塞SOCKET发送SYN后立即返回,同时告诉调用者EWOULDBLOCK。同步、异步编程
同步、异步编程是指在程序出现阻塞情况下能否执行其它业务逻辑。
同步编程:只有将当前逻辑执行完才执行其它业务逻辑;
异步编程:如果当前业务逻辑出现阻塞可以执行其它已就绪业务逻辑。
举个例子:
代理程序,在向服务器发起请求获取响应同时还需要处理来自其它客户端的请求。
同步编程:在收到服务器响应前不会接收来自客户端的请求
异步编程:在未收到服务器响应前可以处理其它客户端的请求阻塞非阻塞SOCKET与同异步编程
按照前面的列举,组合情况可能有:
阻塞SOCKET的同步编程、阻塞SOCKET的异步编程、非阻塞SOCEKT的同步编程、非阻塞SOCKET的异步编程。
从对程序和系统性能影响看按照优势从高到低是:
非阻塞SOCKET异步编程 > 阻塞SOCKET异步编程 > 阻塞SOCKET同步编程 > 非阻塞SOCKET同步编程
阻塞非阻塞SOCKET-同异步编程
最新推荐文章于 2019-09-25 12:36:13 发布