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

网站不备案可以用吗/nba今日数据

网站不备案可以用吗,nba今日数据,乌鲁木齐网站设计定制,用node.js可以做网站吗Java BIO 问题分析 每个请求都需要创建独立的线程,与对应的客户端进行数据 Read,业务处理,数据 Write 。当并发数较大时,需要创建大量线程来处理连接,系统资源占用较大。连接建立后,如果当前线程暂时没有数…

Java BIO 问题分析

  1. 每个请求都需要创建独立的线程,与对应的客户端进行数据 Read,业务处理,数据 Write 。
  2. 当并发数较大时,需要创建大量线程来处理连接,系统资源占用较大。
  3. 连接建立后,如果当前线程暂时没有数据可读,则线程就阻塞在 Read 操作上,造成线程资源浪费

nio介绍

  1. Java NIO 全称 java non-blocking IO,是指 JDK 提供的新 API。从 JDK1.4 开始,Java 提供了一系列改进的输入/输出的新特性,被统称为 NIO(即 New IO),是同步非阻塞的
  2. NIO 相关类都被放在 java.nio 包及子包下,并且对原 java.io 包中的很多类进行改写。【基本案例】
  3. NIO 有三大核心部分:Channel(通道),**Buffer(缓冲区), Selector(**选择器)

Selector 、 Channel 和 Buffer 的关系图:

  1. 每个channel都会对应一个Buffer
  2. Selector 对应一个线程, 一个线程对应多个 channel(连接)
  3. 该图反应了有三个channel注册到该selector//程序
  4. 程序切换到哪个channel是有事件决定的,Event就是一个重要的概念
  5. Selector 会根据不同的事件,在各个通道上切换
  6. Buffer 就是一个内存块 , 底层是有一个数组
  7. 数据的读取写入是通过Buffer,这个和BIO,BIO中要么是输入流,或者是输出流, 不能双向,但是 NIO 的 Buffer 是可以读也可以写, 需要 flip 方法切换 channel 是双向的, 可以返回底层操作系统的情况, 比如 Linux , 底层的操作系统通道就是双向的。

缓冲区(Buffer)

缓冲区(Buffer):缓冲区本质上是一个可以读写数据的内存块,可以理解成是一个容器对象**(含数组)**,该对象提供了一组方法,可以更轻松地使用内存块,,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况。Channel 提供从文件、网络读取数据的渠道,但是读取或写入的数据都必须经由 Buffer。

channel

NIO 的通道类似于流,但有些区别如下:

  • 通道可以同时进行读写,而流只能读或者只能写
  • 通道可以实现异步读写数据
  • 通道可以从缓冲读数据,也可以写数据到缓冲:
  1. BIO 中的 stream 是单向的,例如 FileInputStream 对象只能进行读取数据的操作,而 NIO 中的通道(Channel) 是双向的,可以读操作,也可以写操作。
  2. Channel 在 NIO 中是一个接口 public interface Channel extends Closeable{}
  3. 常 用 的 Channel 类 有 : FileChannel 、 DatagramChannel 、 ServerSocketChannelSocketChannel 。 【ServerSocketChanne 类似 ServerSocket , SocketChannel 类似 Socket】

Selector 示意图和特点说明

  1. Java 的 NIO,用非阻塞的 IO 方式。可以用一个线程,处理多个的客户端连接,就会使用到 Selector(选择器)
  2. Selector 能够检测多个注册的通道上是否有事件发生(注意:多个 Channel 以事件的方式可以注册到同一个 Selector),如果有事件发生,便获取事件然后针对每个事件进行相应的处理。这样就可以只用一个单线程去管 理多个通道,也就是管理多个连接和请求。
  3. 只有在连接/通道真正有读写事件发生时,才会进行读写,就大大地减少了系统开销,并且不必为每个连接都 创建一个线程,不用去维护多个线程
  4. 避免了多线程之间的上下文切换导致的开销

  1. Netty 的 IO 线程 NioEventLoop 聚合了 Selector(选择器,也叫多路复用器),可以同时并发处理成百上千个客

    户端连接。

  2. 当线程从某客户端 Socket 通道进行读写数据时,若没有数据可用时,该线程可以进行其他任务。

  3. 线程通常将非阻塞 IO 的空闲时间用于在其他通道上执行 IO 操作,所以单独的线程可以管理多个输入和输出

    通道。

  4. 由于读写操作都是非阻塞的,这就可以充分提升 IO 线程的运行效率,避免由于频繁 I/O 阻塞导致的线程挂

    起。

  5. 一个 I/O 线程可以并发处理 N 个客户端连接和读写操作,这从根本上解决了传统同步阻塞 I/O 一连接一线程模型,架构的性能、弹性伸缩能力和可靠性都得到了极大的提升。

最后

小编利用空余时间整理了一份《MySQL性能调优手册》,初衷也很简单,就是希望能够帮助到大家,减轻大家的负担和节省时间。

关于这个,给大家看一份学习大纲(PDF)文件,每一个分支里面会有详细的介绍。

image

这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)可以直接【点击 “性能调优”】免费下载!

记(MySQL+Tomcat+JVM)可以直接【点击 “性能调优”】免费下载!**

http://www.lbrq.cn/news/971227.html

相关文章:

  • 深圳网站制作的/百度seo排名培训优化
  • 网站建设中faqs的意思/网销是什么工作好做吗
  • wordpress 5.1.1主题/seo网络培训学校
  • 浪漫做爰网站/今天特大新闻
  • 企业电子商务网站建设/优化大师怎么下载
  • 做外贸独立网站必须要有备案么/网站发布流程
  • 手机网站定制 杭州/成免费crm软件有哪些优点
  • 网络求职做阿姨哪个网站好/seo包年优化
  • 标志在线设计网站/广东seo
  • 响应式网站建设报价单/杭州seo教程
  • 网站开发代做/技能培训班有哪些课程
  • 实验报告设计方案/站长工具seo综合查询源码
  • 安阳网站建设哪里最好/软件测试培训
  • 网站建设网店名字/自助搭建平台
  • 网站群建设论文/seo优化招商
  • 网站换模板影响/朋友圈网络营销
  • 无锡网站制作 高端网站定制/地推放单平台
  • 大连网站建设蛇皮果/seo投放
  • 施工企业资质审查系统/北京百度seo工作室
  • 沈阳做企业网站/谷歌推广
  • 免费做公司网站/沧州seo公司
  • 整容医院网站建设目的/网络推广平台几大类
  • 在百度云上建设网站/网络营销顾问招聘
  • 在国内做av网站/南宁seo渠道哪家好
  • 做网站水晶头/国外友链买卖平台
  • 相亲网站如何做/游戏推广是什么工作
  • 网站怎么做丰富的tag标签页/百度推广怎么优化关键词的质量
  • 网站建设及运行情况介绍/搜狗站长推送工具
  • 嘉兴网站推广公司/百度推广登录手机版
  • 徐州市铜山新区建设局网站/垂直搜索引擎
  • Python 程序设计讲义(2):Python 概述
  • C++-linux系统编程 8.进程(二)exec函数族详解
  • GitHub Pages+Jekyll 静态网站搭建(二)
  • 自增主键为什么不是连续的?
  • 22.计算指定范围内数字的幂次和
  • APP端定位实现(uniapp Vue3)(腾讯地图)