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

政工网站建设网站首页被k怎么办

政工网站建设,网站首页被k怎么办,vs 2017网站开发php,seo入门书籍Netty Netty初体验基础概念Reactor模型传统的阻塞IO模型基础Reactor模型多线程Reactor模型 为什么要使用Netty#xff1f; #xff08;NIO的框架#xff0c;用于解决高并发出现的问题#xff09; *BIO:同步且阻塞的IO NIO:同步且非阻塞的IO#xff08;不是说线程#x… Netty Netty初体验基础概念Reactor模型传统的阻塞IO模型基础Reactor模型多线程Reactor模型 为什么要使用Netty NIO的框架用于解决高并发出现的问题 *BIO:同步且阻塞的IO NIO:同步且非阻塞的IO不是说线程 AIO:异步且非阻塞的IO 还没有实现业务光写整个流程就非常繁琐。NIO除了实现起来复杂之外还存在一些需要解决的棘手问题比如客户端断线重连如何实现心跳处理(客户端在一定的时间内不断的向服务器发送信息告诉服务器还在)、半包读写处理等等一些列问题此时需要有这么一个框架用于解决和优化NIO存在的问题它就是Netty。 目的客户端越来越多随着客户端的增多代码的复杂程度就变高netty帮我们降低了编写nio的代码复杂程度* Netty初体验 第一步引入依赖 dependenciesdependencygroupIdio.netty/groupIdartifactIdnetty-all/artifactIdversion4.1.35.Final/version/dependency /dependencies服务器端 public class NettyServer {public static void main(String[] args) throws Exception {//创建只处理连接请求的线程组EventLoopGroup bossGroup new NioEventLoopGroup(10);//创建只处理客户端读写业务的线程组EventLoopGroup workGroup new NioEventLoopGroup(10);//创建服务端启动对象ServerBootstrap bootstrap new ServerBootstrap();//配置参数bootstrap.group(bossGroup,workGroup)//使用NioServerSocketChannel作为服务器的通道实现.channel(NioServerSocketChannel.class)//配置用于存放因没有空闲线程导致连接请求被暂存放到队列中的队列长度.option(ChannelOption.SO_BACKLOG,1024)//创建通道初始化的对象并配置该对象,向该对象中添加处理器来实现具体的业务.childHandler(new ChannelInitializerSocketChannel() {//初始化通道Overrideprotected void initChannel(SocketChannel ch) throws Exception {//添加处理器,处理器里面是真正处理业务的ch.pipeline().addLast(new NettyServerHandler());}});//配置groupSystem.out.println(Netty服务器启动了);//同步阻塞地启动服务器ChannelFuture channelFuture bootstrap.bind(9090).sync();//只要服务没关闭该方法会一直阻塞channelFuture.channel().closeFuture().sync();System.out.println(a);bossGroup.shutdownGracefully();workGroup.shutdownGracefully();} }public class NettyServerHandler extends ChannelInboundHandlerAdapter {//当有客户端发送数据来的时候该方法就会被调用Overridepublic void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {ByteBuf buf (ByteBuf) msg;System.out.println(客户端发送的数据:buf.toString(StandardCharsets.UTF_8));}//读完数据之后调用的方法:发送数据给客户端Overridepublic void channelReadComplete(ChannelHandlerContext ctx) throws Exception {//创建携带的ByteBuf对象ByteBuf buf Unpooled.copiedBuffer(hello client.getBytes(StandardCharsets.UTF_8));ctx.writeAndFlush(buf);}//异常捕获Overridepublic void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {System.out.println(cause.getMessage());ctx.close();} }客户端 public class NettyClient {public static void main(String[] args) throws Exception {//创建一个线程组用于事件循环EventLoopGroup eventLoopGroup new NioEventLoopGroup();//创建客户端启动对象Bootstrap bootstrap new Bootstrap();//设置相关参数bootstrap.group(eventLoopGroup)//使用NioSocketChannel作为客户端的通道实现.channel(NioSocketChannel.class)//创建通道初始化对象并设置handler业务处理器.handler(new ChannelInitializerSocketChannel() {Overrideprotected void initChannel(SocketChannel ch) throws Exception {//添加处理器处理器里面是实现具体业务的ch.pipeline().addLast(new NettyClientHandler());}});System.out.println(Netty客户端启动了);//告知客户端的服务器的地址并启动客户端ChannelFuture channelFuture bootstrap.connect(127.0.0.1,9090).sync();channelFuture.channel().closeFuture().sync();//阻塞等待完成操作后关闭通道eventLoopGroup.shutdownGracefully();} }public class NettyClientHandler extends ChannelInboundHandlerAdapter {//当客户端完成连接服务器后调用该方法Overridepublic void channelActive(ChannelHandlerContext ctx) throws Exception {ByteBuf buf Unpooled.copiedBuffer(hello server.getBytes(StandardCharsets.UTF_8));ctx.writeAndFlush(buf);}//当通道有读事件发生时调用的方法读取服务器返回的数据Overridepublic void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {ByteBuf buf (ByteBuf) msg;System.out.println(来自服务器ctx.channel().remoteAddress()的消息buf.toString(StandardCharsets.UTF_8));} }基础概念 NIO中实现多路复用的核心类是Selector当多路复用器Selector调用select方法时将会查找发生事件的 channel问题是该如何在多个注册到selector上的channel中找到哪些channel发生了事件此时NIO不同的版本有不同的做法。 epoll函数 poll函数 select函数 Reactor模型 不同的线程决定了程序的性能多线程是为了充分利用CPU 传统的阻塞IO模型 客户端连接服务端之后会等客户端输入完之后最后响应给客户端才能紧接着为其它的客户端执行任务因为等待会耗费大量时间所以并没有把CPU用到极致 基础Reactor模型 可以执行完连接之后让别的客户端来拿来处理自己的任务各个操作之间是独立的充分利用服务端之间的性能可能是连接的也可以是读的也可以是写的 多线程Reactor模型
http://www.w-s-a.com/news/4804/

相关文章:

  • 滨州建网站公司京东云 wordpress
  • 网站视频背景怎么做免费的网络推广有哪些
  • 申请网站怎样申请广西壮族自治区专升本业务系统
  • 写作网站哪个网站做ic外单好
  • 苏州和城乡建设局网站撸撸撸做最好的导航网站
  • 网站被同行抄袭怎么办深圳中装建设集团
  • 建站及推广瓦房店 网站建设
  • 怎么查网站是在哪里备案的广州电力建设有限公司网站
  • 做网站自己申请域名还是对方wordpress管理地址
  • 专门做二手书网站或appwordpress首页显示特定分类文章
  • 无锡网站设计厂家一建十个专业含金量排名
  • 网站刷链接怎么做成都高度网站技术建设公司
  • flash网站模板怎么用xml网站地图生成
  • 英文网站优化群晖wordpress中文
  • saas建站平台源码济南品牌网站建设公司
  • 网站建设一般是用哪个软件网站百度
  • 企业建站的作用是什么南宁公司网站开发
  • 厦门网站建设及维护门户网站开发视频教学
  • 可以做兼职的网站有哪些自动点击器永久免费版
  • 建购物网站怎么建呀网站怎么做中英文交互
  • 网站建设费用计入无形资产做网站用的主机
  • 佛山企业网站建设平台沈阳网站建设培训班
  • 河南企业网站优化外包网站怎么做来流量
  • 网站建设的参考文献网站设计网页的优缺点
  • WordPress多站點支付插件内江市网站建设培训
  • 做做网站已更新动漫制作专业需要学什么
  • dfv印花图案设计网站网站建设应该应聘什么岗位
  • 网站后台管理系统模板下载专业网站推广的公司哪家好
  • 克拉玛依市建设局网站网页设计板式重构
  • 网站新闻专题怎么做湖南营销型网站建设 要上磐石网络