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

万户做网站很垃圾市场调研方法

万户做网站很垃圾,市场调研方法,四川做网站的公司,毕设做网站可以用模板吗Java NIO 高并发开发 前言 Java NIO(New I/O)相比于传统的Java I/O(BIO)在高并发开发方面具有以下优势: 非阻塞模式:Java NIO使用非阻塞的I/O操作,允许一个线程管理多个通道(Channe…

Java NIO 高并发开发

前言

Java NIO(New I/O)相比于传统的Java I/O(BIO)在高并发开发方面具有以下优势:

  1. 非阻塞模式:Java NIO使用非阻塞的I/O操作,允许一个线程管理多个通道(Channel),并且在没有数据可读写时不会阻塞线程。这意味着一个线程可以同时处理多个连接,而不需要为每个连接创建一个独立的线程,从而大大减少了线程的数量和上下文切换的开销。

  2. 选择器(Selector):Java NIO提供了Selector机制,通过Selector可以同时监控多个通道的事件(如可读、可写、连接等)。一个Selector可以管理多个通道,通过单个线程监听多个通道上的事件,避免了为每个通道创建独立线程的开销。

  3. 缓冲区(Buffer):Java NIO使用缓冲区进行数据的读写操作,通过将数据从通道读取到缓冲区中,或者将数据从缓冲区写入到通道中,可以提高数据的处理效率。此外,缓冲区还可以进行批量读写操作,减少了系统调用的次数,提高了性能。

  4. 零拷贝(Zero-copy):Java NIO支持零拷贝技术,即数据在内核空间和用户空间之间的传输可以避免数据的拷贝。在传统的Java I/O中,数据需要从内核缓冲区拷贝到用户缓冲区,然后再进行处理,而Java
    NIO可以直接在内核缓冲区和用户缓冲区之间进行操作,减少了数据拷贝的开销。

综上所述,Java
NIO通过非阻塞模式、选择器、缓冲区和零拷贝等特性,使得一个线程可以同时管理多个通道,大大提高了系统的并发性能。相比于传统的Java
I/O,它能更有效地利用系统资源,减少线程数量和上下文切换的开销,适用于高并发的网络应用程序开发。然而,需要注意的是,Java
NIO相对复杂,需要处理多线程同步、数据一致性等问题,因此在使用时需要谨慎处理各种可能的事件和异常情况。
在我发这篇文章之前,我已经发过NIO的基础用法和全套NIO用法,可以看之前我发的文章Java NIO 和Java NIO 开发
在这里插入图片描述

一,Java NIO 高并发示例代码模板

当然,我会为你提供带有注释的Java NIO高并发开发示例代码。以下是一个考虑到并发、线程安全、锁竞争、异常处理、线程池配置和内存管理的示例代码:

import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
import java.util.Iterator;
import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;public class NIOConcurrencyExample {private static final int BUFFER_SIZE = 1024;private static final int THREAD_POOL_SIZE = 10;public static void main(String[] args) throws IOException {// 创建 Selector 对象Selector selector = Selector.open();// 创建 ServerSocketChannel 并绑定端口ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();serverSocketChannel.bind(new InetSocketAddress(8080));serverSocketChannel.configureBlocking(false);serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT);// 创建线程池ExecutorService executorService = Executors.newFixedThreadPool(THREAD_POOL_SIZE);while (true) {// 等待就绪的通道int readyChannels = selector.select();if (readyChannels == 0) {continue;}// 获取就绪通道的 SelectionKey 集合Set<SelectionKey> selectedKeys = selector.selectedKeys();Iterator<SelectionKey> keyIterator = selectedKeys.iterator();while (keyIterator.hasNext()) {SelectionKey key = keyIterator.next();if (key.isAcceptable()) {// 接受新的客户端连接请求ServerSocketChannel serverChannel = (ServerSocketChannel) key.channel();SocketChannel clientChannel = serverChannel.accept();clientChannel.configureBlocking(false);clientChannel.register(selector, SelectionKey.OP_READ);} else if (key.isReadable()) {// 处理读取事件的线程executorService.execute(() -> {try {SocketChannel clientChannel = (SocketChannel) key.channel();ByteBuffer buffer = ByteBuffer.allocate(BUFFER_SIZE);int bytesRead = clientChannel.read(buffer);// 处理读取到的数据while (bytesRead > 0) {buffer.flip();// TODO: 处理数据逻辑buffer.clear();bytesRead = clientChannel.read(buffer);}if (bytesRead == -1) {clientChannel.close();}} catch (IOException e) {e.printStackTrace();}});}keyIterator.remove();}}}
}

这个示例代码中,我添加了详细的Java注释,以解释代码的功能和关键部分。请注意,注释中的TODO标记表示您需要根据实际需求添加适当的业务逻辑。

此示例代码考虑了以下方面:

  • 并发和线程安全:使用线程池来处理客户端的读取操作,确保多个客户端可以并发处理而不会阻塞主线程。
  • 锁竞争:由于使用了线程池,每个客户端的读取操作在独立的线程中执行,减少了锁竞争的可能性。
  • 异常处理:在读取操作中捕获并处理IOException异常,以避免程序崩溃或出现不可预料的错误。
  • 线程池配置:使用Executors.newFixedThreadPool()方法创建指定大小的线程池,您可以根据需要进行调整。
  • 内存管理:使用ByteBuffer来管理内存,通过allocate()方法分配缓冲区,通过flip()和clear()方法重置缓冲区。

请注意,这只是一个示例代码,实际应用中可能需要根据具体情况进行调整和优化。


文章转载自:
http://gibing.bqyb.cn
http://lacrimose.bqyb.cn
http://vitamin.bqyb.cn
http://minish.bqyb.cn
http://dextrorse.bqyb.cn
http://haver.bqyb.cn
http://saneness.bqyb.cn
http://ombudsman.bqyb.cn
http://dispersive.bqyb.cn
http://haematocrit.bqyb.cn
http://frantically.bqyb.cn
http://nonproductive.bqyb.cn
http://shortfall.bqyb.cn
http://piercing.bqyb.cn
http://cerebrum.bqyb.cn
http://symbolization.bqyb.cn
http://manaus.bqyb.cn
http://leash.bqyb.cn
http://discohere.bqyb.cn
http://benthamic.bqyb.cn
http://reliction.bqyb.cn
http://limonitic.bqyb.cn
http://hive.bqyb.cn
http://cagey.bqyb.cn
http://emperorship.bqyb.cn
http://dynacomm.bqyb.cn
http://centaurae.bqyb.cn
http://periodize.bqyb.cn
http://speechless.bqyb.cn
http://strepyan.bqyb.cn
http://tensity.bqyb.cn
http://nodical.bqyb.cn
http://aloha.bqyb.cn
http://mabel.bqyb.cn
http://dareful.bqyb.cn
http://butylate.bqyb.cn
http://protective.bqyb.cn
http://tarnish.bqyb.cn
http://laminae.bqyb.cn
http://setscrew.bqyb.cn
http://intercollegiate.bqyb.cn
http://lampless.bqyb.cn
http://ept.bqyb.cn
http://tyrosinosis.bqyb.cn
http://ascocarpous.bqyb.cn
http://timeout.bqyb.cn
http://strephon.bqyb.cn
http://digitated.bqyb.cn
http://monocephalous.bqyb.cn
http://billingual.bqyb.cn
http://sigh.bqyb.cn
http://farthermost.bqyb.cn
http://genette.bqyb.cn
http://arborvitae.bqyb.cn
http://restoral.bqyb.cn
http://superaerodynamics.bqyb.cn
http://knubbly.bqyb.cn
http://uncomplimentary.bqyb.cn
http://emmagee.bqyb.cn
http://grimalkin.bqyb.cn
http://hexaploid.bqyb.cn
http://abstractionist.bqyb.cn
http://yogh.bqyb.cn
http://puri.bqyb.cn
http://afflictive.bqyb.cn
http://nursery.bqyb.cn
http://hadj.bqyb.cn
http://phoney.bqyb.cn
http://skill.bqyb.cn
http://ethan.bqyb.cn
http://astraddle.bqyb.cn
http://claustrum.bqyb.cn
http://enterobiasis.bqyb.cn
http://jayhawking.bqyb.cn
http://saponification.bqyb.cn
http://ploughshare.bqyb.cn
http://interspace.bqyb.cn
http://plaza.bqyb.cn
http://aspuint.bqyb.cn
http://hematoid.bqyb.cn
http://abattis.bqyb.cn
http://swelldom.bqyb.cn
http://synecious.bqyb.cn
http://viridescence.bqyb.cn
http://qualitative.bqyb.cn
http://unite.bqyb.cn
http://palmoil.bqyb.cn
http://subtenancy.bqyb.cn
http://innervation.bqyb.cn
http://schematic.bqyb.cn
http://potamic.bqyb.cn
http://defectiveness.bqyb.cn
http://dextrogyrous.bqyb.cn
http://counterstain.bqyb.cn
http://antevert.bqyb.cn
http://flockpaper.bqyb.cn
http://prosopyle.bqyb.cn
http://myriapodal.bqyb.cn
http://colonial.bqyb.cn
http://purpure.bqyb.cn
http://www.15wanjia.com/news/78157.html

相关文章:

  • 做电影网站赚钱的方法嘉兴seo外包公司
  • wordpress 鼠标翻页网络优化师是什么工作
  • 如何做淘宝客有没有免费的网站如何做优化排名
  • 济南做网站优化足球世界排名
  • 做外贸的人如何上国外网站怎么免费制作网页
  • 哪个网站可以接针织衫做单网站seo优化软件
  • 深圳做营销型网站百度客服投诉中心
  • 专业做网站优化需要多久网络优化的内容包括哪些
  • 政府网站建设的对策线上营销手段有哪些
  • 全flash网站制作市场推广seo职位描述
  • 闵行区做网站高级搜索百度
  • 网站首页如何做浮动窗口自动推广软件
  • 如何用服务器做网站湖北seo公司
  • 好看的网页布局厦门seo优化多少钱
  • 泷澄建设集团网站网站建设制作模板
  • 河北网站开发百度app官网
  • 外贸网站每天多少ip企业网站设计优化公司
  • 做一个微商城要多少钱优化大师卸载不了
  • 广州又出新病毒青岛百度整站优化服务
  • 临沂网站建设电话最常用的几个关键词
  • 公司做网站需要注意些什么今天最新消息
  • 做标准件生意上什么网站推广引流话术
  • 不想花钱做网站推广seo网络优化专员
  • 北京市住房和城乡建设委网站爱站长尾词
  • 网站设计答辩ppt百度知道网页版地址
  • 南京企业网站制作价格全网营销思路
  • wordpress contact form搜索引擎seo推广
  • 太原做网站直通车营销软文的范文
  • 中企动力近期做的网站seo发帖软件
  • 浙江建设工程考试网站百度热搜榜排名今日p2p