首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏后端码事

    Java AIO 异步IO应用实例

    java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.AsynchronousChannelGroup asynchronousChannelGroup; protected AsynchronousServerSocketChannel serverChannel; public this.threadSize = threadSize; init(); } private void init(){ try { asynchronousChannelGroup = AsynchronousChannelGroup.withCachedThreadPool(Executors.newCachedThreadPool(), 10); serverChannel = AsynchronousServerSocketChannel.open(asynchronousChannelGroup); serverChannel.bind(new

    86330发布于 2020-09-11
  • 来自专栏云时代Java开发:原理、实战与优化

    Java NIO.2 异步调度中枢:AsynchronousChannelGroup 源码深度剖析与线程池契约

    前言:被低估的异步I/O资源边界在JavaNIO.2(AIO)的体系中,AsynchronousChannelGroup是一个常被忽视却至关重要的基础设施。 AsynchronousChannelGroup不仅仅是一个“线程池包装器”。它是I/O完成事件与业务回调之间的调度契约,是通道生命周期与执行器生命周期的绑定纽带,更是异步关闭语义的传播边界。 本文将基于JDK源码与规范文档,对AsynchronousChannelGroup进行逐层解构。 第一章:核心定位与架构角色1.1Group的本质:I/O事件的调度域AsynchronousChannelGroup的核心职责不是“管理通道”,而是封装I/O完成事件的派发机制。 具体而言:展开代码语言:TXTAI代码解释OS异步原语(IOCP/epoll/io_uring)│▼┌─────────────────────┐│AsynchronousChannelGroup│←调度域边界

    8421编辑于 2026-05-25
  • 来自专栏精讲JAVA

    Java 非阻塞 IO 和异步 IO

    在 Unix/Linux 等系统中,JDK 使用了并发包中的线程池来管理任务,具体可以查看 AsynchronousChannelGroup 的源码。 Asynchronous Channel Groups 为了知识的完整性,有必要对 group 进行介绍,其实也就是介绍 AsynchronousChannelGroup 这个类。 executor, int initialSize) AsynchronousChannelGroup.withFixedThreadPool(int nThreads, ThreadFactory 它们都是 AsynchronousChannelGroup 中的静态方法。 至于 group 的使用就很简单了,代码一看就懂: AsynchronousChannelGroup group = AsynchronousChannelGroup .withFixedThreadPool

    1.5K90发布于 2018-03-21
  • 来自专栏Coding Diary

    Java网络编程 -- AIO异步网络编程

    AIO其实是对NIO的增强,新增了许多支持异步的类如AsynchronousServerSocketChannel,AsynchronousChannel,AsynchronousChannelGroup // 多线程版本 // ExecutorService executorService = Executors.newCachedThreadPool(); // AsynchronousChannelGroup channelGroup = // AsynchronousChannelGroup.withCachedThreadPool(executorService, 1);

    1.3K20发布于 2019-09-25
  • 来自专栏微信公众号【Java技术江湖】

    Java网络编程和NIO详解5:Java 非阻塞 IO 和异步 IO

    在 Unix/Linux 等系统中,JDK 使用了并发包中的线程池来管理任务,具体可以查看 AsynchronousChannelGroup 的源码。 Asynchronous Channel Groups 为了知识的完整性,有必要对 group 进行介绍,其实也就是介绍 AsynchronousChannelGroup 这个类。 executor, int initialSize) AsynchronousChannelGroup.withFixedThreadPool(int nThreads, ThreadFactory 它们都是 AsynchronousChannelGroup 中的静态方法。 至于 group 的使用就很简单了,代码一看就懂: AsynchronousChannelGroup group = AsynchronousChannelGroup .withFixedThreadPool

    69610发布于 2019-11-21
  • 来自专栏平凡文摘

    Java 非阻塞 IO 和异步 IO

    在 Unix/Linux 等系统中,JDK 使用了并发包中的线程池来管理任务,具体可以查看 AsynchronousChannelGroup 的源码。 Asynchronous Channel Groups 为了知识的完整性,有必要对 group 进行介绍,其实也就是介绍 AsynchronousChannelGroup 这个类。 executor, int initialSize) AsynchronousChannelGroup.withFixedThreadPool(int nThreads, ThreadFactory 它们都是 AsynchronousChannelGroup 中的静态方法。 至于 group 的使用就很简单了,代码一看就懂: AsynchronousChannelGroup group = AsynchronousChannelGroup .withFixedThreadPool

    2.5K30发布于 2018-07-03
  • 来自专栏云时代Java开发:原理、实战与优化

    Java NIO 并发关闭语义:AsynchronousCloseException 源码深度剖析与异步中断契约

    我们将从其类型谱系出发,深入剖析同步NIO与异步AIO中关闭传播机制的差异,揭示它在Selector、ServerSocketChannel、AsynchronousChannelGroup等关键组件中的触发路径 outstanding操作都收到通知线程身份执行I/O的线程Group线程池中的某个线程后续操作抛ClosedChannelExceptionfailed(ClosedChannelException)3.3AsynchronousChannelGroup 的级联关闭当AsynchronousChannelGroup.shutdownNow()被调用时:展开代码语言:TXTAI代码解释shutdownNow()│├──标记group为SHUTDOWN├──

    10220编辑于 2026-05-25
  • 来自专栏云时代Java开发:原理、实战与优化

    Java NIO.2 异步基石:AsynchronousChannelProvider 源码深度剖析与 SPI 架构哲学

    答案就是AsynchronousChannelGroup。 5.3虚拟线程的协同虽然AsynchronousChannelProvider本身不直接涉及虚拟线程,但其创建的AsynchronousChannelGroup可以与虚拟线程调度器协同。 7.2vsRusttokio的RuntimeTokio的Runtime类似于AsynchronousChannelGroup,但更通用(不仅限于I/O)。

    12320编辑于 2026-05-24
  • 来自专栏技术从心

    Java I/O 操作及优化建议

    ,监听端口等; java.nio.channels.AsynchronousSocketChannel:面向流的异步 Socket Channel,表示一个连接; java.nio.channels.AsynchronousChannelGroup 一个 AsynchronousChannelGroup 绑定一个线程池,这个线程池执行两个任务:处理 IO 事件和派发 CompletionHandler。 AsynchronousServerSocketChannel 创建的时候可以传入一个 AsynchronousChannelGroup,那么通过 AsynchronousServerSocketChannel API 允许两种方式来处理异步操作的结果:返回的 Future 模式或者注册 CompletionHandler,推荐用 CompletionHandler 的方式,这些 handler 的调用是由 AsynchronousChannelGroup

    67330发布于 2019-08-07
  • 来自专栏JavaEdge

    BIO NIO AIO演变1 BIO2 NIO3 AIO4 常见面试题5 总结

    import java.net.InetSocketAddress; import java.nio.channels.AsynchronousChannelGroup; import java.nio.channels.AsynchronousServerSocketChannel class ITDragonAIOServer { private ExecutorService executorService; // 线程池 private AsynchronousChannelGroup executorService = Executors.newCachedThreadPool(); // 2.创建通道组 threadGroup = AsynchronousChannelGroup.withCachedThreadPool

    1.6K30发布于 2018-08-10
  • 来自专栏Java编程

    Java I/O 操作及优化建议

    ,监听端口等; java.nio.channels.AsynchronousSocketChannel:面向流的异步 Socket Channel,表示一个连接; java.nio.channels.AsynchronousChannelGroup 一个 AsynchronousChannelGroup 绑定一个线程池,这个线程池执行两个任务:处理 IO 事件和派发 CompletionHandler。 AsynchronousServerSocketChannel 创建的时候可以传入一个 AsynchronousChannelGroup,那么通过 AsynchronousServerSocketChannel API 允许两种方式来处理异步操作的结果:返回的 Future 模式或者注册 CompletionHandler,推荐用 CompletionHandler 的方式,这些 handler 的调用是由 AsynchronousChannelGroup

    1.9K11发布于 2017-12-15
  • 来自专栏云扬四海

    1.Java-IO演进之路

    try { ExecutorService executorService = Executors.newCachedThreadPool(); AsynchronousChannelGroup threadGroup = AsynchronousChannelGroup.withCachedThreadPool(executorService, 1); //开门营业

    46020编辑于 2022-05-10
  • 来自专栏Lambda

    Netty序章之BIO NIO AIO演变

    import java.net.InetSocketAddress; import java.nio.channels.AsynchronousChannelGroup; import java.nio.channels.AsynchronousServerSocketChannel class ITDragonAIOServer { private ExecutorService executorService; // 线程池 private AsynchronousChannelGroup executorService = Executors.newCachedThreadPool(); // 2.创建通道组 threadGroup = AsynchronousChannelGroup.withCachedThreadPool

    74820编辑于 2022-04-13
  • 来自专栏王磊的博客

    Java核心(五)深入理解BIO、NIO、AIO

    AIO线程复用版 Thread sThread = new Thread(new Runnable() { @Override public void run() { AsynchronousChannelGroup group = null; try { group = AsynchronousChannelGroup.withThreadPool(Executors.newFixedThreadPool

    89110发布于 2018-12-24
  • 来自专栏Java极客技术

    一文了解Java的IO模型

    { public static void main(String[] args) throws Exception { // 创建异步通道组,处理IO事件 AsynchronousChannelGroup group = AsynchronousChannelGroup.withFixedThreadPool(10, Executors.defaultThreadFactory());

    1K10编辑于 2024-01-31
  • 来自专栏王磊的博客

    Java核心(五)深入理解BIO、NIO、AIO

    AIO线程复用版 Thread sThread = new Thread(new Runnable() { @Override public void run() { AsynchronousChannelGroup group = null; try { group = AsynchronousChannelGroup.withThreadPool(Executors.newFixedThreadPool

    11.9K55发布于 2018-12-24
  • 来自专栏Java核心技术

    一次带你搞懂Java中的BIO|NIO|AIO,你也可以轻松玩转!

    The default thread pool is configured by the system properties defined by the AsynchronousChannelGroup

    60420发布于 2021-06-11
  • 来自专栏爱可生开源社区

    分布式 | 动态调整 DBLE 内线程池的数目

    线程内部通过轮询方式获取任务(启动时创建的线程称之为常驻线程) processors 、backendProcessors 相关线程在 nio 情况下通过外置队列+线程池实现调度;在 aio 情况下通过 AsynchronousChannelGroup

    47520编辑于 2022-02-09
  • 来自专栏公众号:懒时小窝

    《跟闪电侠学Netty》阅读笔记 - 开篇入门Netty

    用于处理异步操作的线程池 ExecutorService executor = Executors.newFixedThreadPool(10); // 创建一个 AsynchronousChannelGroup ,将线程池与该 Channel 组关联 AsynchronousChannelGroup channelGroup = AsynchronousChannelGroup.withThreadPool

    79140编辑于 2023-09-02
  • 来自专栏cloudskyme

    JAVA高性能I/O设计模式

    如果传入AsynchronousChannelGroup,可以绑定线程池来处理事件。 关于JDK的实现,Windows平台基于IOCP实现AIO,Linux只有eppoll模拟实现了AIO。

    1.1K20发布于 2018-07-25
领券