当前位置: 首页 > news >正文

360建筑网站网盟推广费用

360建筑网站,网盟推广费用,精品课程网站建设方案,网站迁移后 后台进不去目录 IO模型 BIO NIO 常见问题 IO模型 Java共支持3种网络编程IO模式#xff1a;BIO#xff0c;NIO#xff0c;AIO BIO 同步阻塞模型#xff0c;一个客户端连接对应一个处理线程 代码示例#xff1a; Server端#xff1a; public class BioServer {private static …目录 IO模型 BIO NIO 常见问题 IO模型 Java共支持3种网络编程IO模式BIONIOAIO BIO 同步阻塞模型一个客户端连接对应一个处理线程 代码示例 Server端 public class BioServer {private static ExecutorService executorService Executors.newFixedThreadPool(10);public static void main(String[] args) throws IOException {ServerSocket serverSocket new ServerSocket(8888);System.out.println(服务器启动成功);while (true) {Socket socket serverSocket.accept();System.out.println(客户端连接成功);executorService.execute(() - {try (BufferedReader reader new BufferedReader(new InputStreamReader(socket.getInputStream()));BufferedWriter writer new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()))) {String message;while ((message reader.readLine()) ! null) {System.out.println(收到消息: message);writer.write(已收到消息: message);writer.newLine();writer.flush();}} catch (IOException e) {e.printStackTrace();}});}} } Client端 public class BioClient {public static void main(String[] args) throws IOException {Socket socket new Socket(localhost, 8888);BufferedWriter writer new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));BufferedReader reader new BufferedReader(new InputStreamReader(socket.getInputStream()));BufferedReader consoleReader new BufferedReader(new InputStreamReader(System.in));String message;while ((message consoleReader.readLine()) ! null) {writer.write(message);writer.newLine();writer.flush();System.out.println(发送消息: message);System.out.println(收到回复: reader.readLine());}socket.close();} } 执行结果 存在问题 IO操作是阻塞操作 连接时读写会造成线程阻塞线程太多会造成CPU异常 应用场景 BIO 方式适用连接数较小且固定的架构 这种方式对服务器资源要求比较高 但代码简单易理解。 NIO 同步非阻塞服务器实现模式为一个线程可以处理多个请求(连接)客户端发送的连接请求都会注册到多路复用器selector上多路复用器轮询到连接有IO请求就进行处理JDK1.4开始引入。 应用场景 NIO方式适用于连接数目多且连接比较短轻操作 的架构 如聊天服务器 弹幕系统 服务器间通讯编程比较复杂。 代码 public class BioSelectorServer {public static void main(String[] args) throws IOException {ServerSocketChannel serverSocket ServerSocketChannel.open();serverSocket.socket().bind(new InetSocketAddress(9000));// 设置非阻塞serverSocket.configureBlocking(false);// 创建多路复用器Selector selector Selector.open();// 注册serversocket到selector 关注连接事件serverSocket.register(selector, SelectionKey.OP_ACCEPT);System.out.println(服务启动成功);while (true) {// 阻塞等待需要处理的事件selector.select();SetSelectionKey selectionKeys selector.selectedKeys();IteratorSelectionKey iterator selectionKeys.iterator();while (iterator.hasNext()) {SelectionKey key iterator.next();// 如果是连接事件 获取连接并且注册读事件if (key.isAcceptable()) {ServerSocketChannel server (ServerSocketChannel) key.channel();SocketChannel socketChannel server.accept();socketChannel.configureBlocking(false);socketChannel.register(selector, SelectionKey.OP_READ);System.out.println(客户端连接成功);} else if (key.isReadable()) {SocketChannel socketChannel (SocketChannel) key.channel();ByteBuffer byteBuffer ByteBuffer.allocate(128);int len socketChannel.read(byteBuffer);if (len 0) {System.out.println(接收到消息: new String(byteBuffer.array()));} else {System.out.println(客户端断开连接);socketChannel.close();}}// 从事件集合里删除本次处理的key防止下次select重复处理iterator.remove();}}} } NIO的三大核心组件: channel 类似于流每个 channel 对应一个 buffer缓冲区buffer 底层就是个数组channel 会注册到 selector 上由 selector 根据 channel 读写事件的发生将其交由某个空闲的线程处理NIO 的 Buffer 和 channel 都是既可以读也可以写 常见问题 为什么Netty使用NIO而不是AIO         在Linux系统上AIO的底层实现仍使用Epoll没有很好实现AIO因此在性能上没有明显的优势而且被JDK封装了一层不容易深度优化Linux上AIO还不够成熟。Netty是异步非阻塞框架Netty在NIO上做了很多异步的封装。
http://www.hkea.cn/news/14300809/

相关文章:

  • 网站手机端首页用什么软件做做的网站百度排名没有图片显示
  • 郑州网站优化托管项目类型和阶段内容介绍
  • 国外大型门户网站国内外优秀网站设计
  • 网站建设要多钱潍坊专升本考试地点
  • 宾馆在什么网站做推广效果好91游戏中心
  • 诊断网站seo现状建设个人购物网站
  • 大良品牌网站建设wordpress论坛功能
  • 188建站系统源码做的很漂亮的网站
  • 电商网站运营团队建设方案wordpress内部优化
  • 58同城哈尔滨网站建设cute主题 wordpress
  • 前端旅游网站行程怎么做近期热点话题
  • 网站开发个人博客唐山建设集团招聘信息网站
  • 金华网站建设价格WordPress tag 目录
  • 网站建设公司发展规划网站开发设计文档
  • 网站建设的价值是什么海报生成器在线制作
  • 网站集约化建设的优点平面设计的创意手法有哪些
  • 做分析图用的地图网站什么网站 是cms系统下载地址
  • 企业网站建设长沙中国网络排名前十名
  • 有没有专门做牛仔的网站公司核准名称网站
  • 宁波网站建设大概要多少钱营销策略的概念和内容
  • 男女之间做下面哪个网站免费wordpress修改目录
  • 如何建立公司网站建设简述seo的应用范围
  • 如何制作收费网页seo目标关键词优化
  • 工业和信息化部网站备案系统湖南众诚建设 官方网站
  • 当当网站建设目标wordpress图片文字排版
  • 单位网站建设情况调查情况网站建设 教材 推荐
  • 互动网站建设的主页霸气又聚财的公司名字大全
  • 营销型网站建设目标wordpress 左右风格主题
  • wordpress 文章换行潮州网站seo推广
  • wordpress电影站开发wordpress导航菜单最右边