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

网站建设计划书模板余姚网站如何进行优化

网站建设计划书模板,余姚网站如何进行优化,网站版权符号代码,网络游戏传奇Netty的介绍Netty是异步的(指定回调处理)、基于事件驱动的网络应用框架,用于快速开发高性能、高可靠性的网络IO程序。Netty本质是一个NIO框架,适用于服务器通讯相关的多种应用场景,分布式节点远程调用中Netty往往作为R…

Netty的介绍

Netty是异步的(指定回调处理)、基于事件驱动的网络应用框架,用于快速开发高性能、高可靠性的网络IO程序。

Netty本质是一个NIO框架,适用于服务器通讯相关的多种应用场景,分布式节点远程调用中Netty往往作为RPC框架使用,如Dubbo

层级结构

Netty

NIO(io、网络)

jdk原生io编程和网络编程

最底层是tcp+ip

IO模型:

BIO(原生的javaIO,同步并阻塞)

同步并阻塞:客户端一个连接请求对应一个线程。如果连接非常多,那么线程会非常多,对服务器压力增大

BIO使用场景:适合用连接数小且固定的架构,对服务器资源要求高

BIO编程

1.服务端启动一个ServerScoket

2.客户端启动Socket对服务器进行通信,默认情况下服务器端需要对每个客户端建立一个线程与之通信

3.客户端发出请求后,先咨询服务器是否有线程响应

  • 如果没有则会等待或者被拒绝;

  • 如果有响应,则客户端线程会等待请求结束后,再继续执行。(有阻塞)

public class BIOServer {public static void main(String[] args) throws IOException {ServerSocket serverSocket = new ServerSocket(6666);System.out.println("服务器启动了~~~");//1.创建线程池ExecutorService threadPool = Executors.newCachedThreadPool();//2.有客户端连接,就创建一个线程,与之通信while (true){//监听,等待客户端连接final Socket socket = serverSocket.accept();System.out.println("连接到一个客户端");threadPool.execute(new Runnable() {@Overridepublic void run() {//和客户端通讯handler(socket);}});}}//handler客户端通讯方法public static void handler(Socket socket){try {System.out.println("线程信息 id="+Thread.currentThread().getId()+"名字="+Thread.currentThread().getName());byte[] bytes = new byte[1024];InputStream inputStream = socket.getInputStream();//循环读取客户端数据到bytes数组while(true){//len是读入缓存区的字节总数int len = inputStream.read(bytes);if(len !=-1){//!=-1 表示可以继续读// 输出客户端发送的数据System.out.println(new String(bytes,0,len));}else {//读取完毕跳出循环break;}}} catch (IOException e) {e.printStackTrace();}finally {try {//关闭socket连接System.out.println("关闭和客户端的连接");socket.close();} catch (IOException e) {e.printStackTrace();}}}
}

win+r打开小黑框

telnet 127.0.0.1 6666

如果cmd提示:telnet不是内部或外部命令,也不是可运行的程序怎么办
控制面板-程序和功能-启用或关闭Windows功能-从列表中选中“Telnet客户端”项,点击“确定”按钮
键入:ctrl+]

send命令发送数据:send xiaoyumao

在idea的控制台打印如下

BIO存在的问题:

  1. 当并发数较大时。需要创建大量线程来处理连接,系统资源占用较大

  1. 连接建立后,如果当前线程暂时没有数据可读,则线程会阻塞在read操作,造成线程资源浪费


NIO(同步非阻塞)

同步非阻塞:一个线程处理多个连接请求,所有连接请求都会注册到多路复用器Selector上,多路复用器轮询到连接有IO请求就进行处理

NIO使用场景:适用于连接数目多且连接比较短的架构

NIO有3大核心组件,Selector、Channel、Buffer

Buffer和通道可以相互读写,程序和Buffer交互,所以NIO是面向缓冲区的编程

每个Channel对应一个Buffer

每个Selector对应一个线程,一个线程对应多个channel(连接)

程序切换到哪个Channel是由事件Event决定的,Selector会根据不同的事件,在各个通道上切换

Buffer是一个内存块,底层是一个数组

  1. NIO数据的读取和写入都是通过Buffer,这是和BIO的本质不同。

  1. BIO中要么是输入流要么是输出流,不是双向的。NIO中Buffer可以读可以写,需要flip切换


AIO(异步非阻塞)

异步非阻塞:引入异步通道,采用Proacor模式。

AIO使用场景:适用于连接数目多且连接比较长的架构


NIO-Buffer

BIO以流的方式处理数据,NIO以块(面向Buffer)处理数据,NIO效率比BIO高很多,且NIO是非阻塞的,而BIO是阻塞的

Buffer类和常用子类

Buffer是一个抽象类,常用子类如下

网络传输都是用字节传输的,故用的最多的ByteBuffer:存储字节数据到缓冲区


ByteBuffer的常用方法


Buffer的4个标志位

public abstract class Buffer {// Invariants: mark <= position <= limit <= capacityprivate int mark = -1;private int position = 0;private int limit;private int capacity;
}

capacity:容量,在缓冲区创建时被设定且不能改变

limit:缓冲区的当前终点,不能对>=limit的位置读写操作

position:下一个要被读或写的元素索引

mark:标记(很少修改)


flip方法的作用

public final Buffer flip() {limit = position;position = 0;mark = -1;return this;
}

IntBuffer的基本使用

public class BasicBuffer {public static void main(String[] args) {//创建一个大小为5的buffer,可以存放5个intIntBuffer intBuffer = IntBuffer.allocate(5);//向buffer存放数据intBuffer.put(1);intBuffer.put(2);intBuffer.put(3);intBuffer.put(4);intBuffer.put(5);//将intBuffer读写切换intBuffer.flip();//从buffer读取数据while (intBuffer.hasRemaining()){//每取一次,则指针后移一位System.out.println(intBuffer.get());}}
}

idea运行效果:

http://www.wooajung.com/news/22373.html

相关文章:

  • 360哈尔滨项目搜索引擎优化的概念
  • 河北高端网站建设网络策划
  • 专业集团门户网站建设费用seo自然优化排名
  • 揭阳网站制作托管三只松鼠网络营销策略
  • 科室网站建设网优工程师前景和待遇
  • centos7.2做网站网络工程师是干什么的
  • 网站制作的语言seo综合查询怎么用
  • 网站开发与设计公司去了外包简历就毁了吗
  • 有什么网站可以发布个人信息品牌网站建设制作
  • 凡科网站可以做淘宝客吗微商店铺怎么开通
  • 做门的网站建设合肥百度网站排名优化
  • 横琴网站建设优化关键词排名的工具
  • 弄一个电影网站怎么做独立站建站平台
  • 搏彩网站开发建设可以免费推广的平台
  • 网站开发关键词异地排名查询
  • phpcms v9网站上传广州seo快速排名
  • 单位网站和新媒体建设制度培训心得体会范文大全1000
  • 美国做电商网站百合seo培训
  • 默认线路正在切换线路站长seo查询
  • 简单的电影网站模板网站关键词优化排名技巧
  • 用axure做pc网站的尺寸seo快速排名软件推荐
  • 彩票计划网站开发2022最新新闻素材摘抄
  • 商城网站模版网络推广公司怎么找客户
  • 怎样建立小程序网站首页关键词如何优化
  • 江西做网站公司软文大全500篇
  • flash做网站步骤广州网站优化排名系统
  • 企业解决方案是什么意思啊windows 优化大师
  • 如何留住网站用户品牌运营管理公司
  • 深圳宝安企业网站建设完整的网页设计代码
  • 著名办公空间设计公司优化网站排名