Java千百问_01基本概念(013)_SocketSocketChannel有什么区别

Posted 幽灵雾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java千百问_01基本概念(013)_SocketSocketChannel有什么区别相关的知识,希望对你有一定的参考价值。

点击进入_更多_Java千百问

1、Socket、SocketChannel有什么区别

了解Socket看这里:Socket是什么
Socket、SocketChannel二者的实质都是一样的,都是为了实现客户端与服务器端的连接而存在的,但是在使用上,却有很大的区别。具体如下:

所属包不同
Socket在java.net包中,而SocketChannel在java.nio包中。

异步方式不同
从包的不同,我们大体可以推断出他们主要的区别:Socket是阻塞连接(当然我们可以自己实现非阻塞),SocketChannel可以设置非阻塞连接
使用ServerSocket、Socket类时,服务端Socket往往要为每一个客户端Socket分配一个线程,而每一个线程都有可能处于长时间的阻塞状态中。过多的线程也会影响服务器的性能(可以使用

以上是关于Java千百问_01基本概念(013)_SocketSocketChannel有什么区别的主要内容,如果未能解决你的问题,请参考以下文章

Java千百问_01基本概念(007)_线程的状态有哪些

Java千百问_01基本概念(009)_CLASSPATH是什么

Java千百问_01基本概念(011)_JavaApplet是什么

Java千百问_01基本概念(008)_jar是什么

Java千百问_01基本概念(014)_同步异步有什么区别

Java千百问_01基本概念(012)_Socket是什么