• 这是我见过BIO/NIO/AIO讲的最清楚的博客了


    链接跳转

    最后,再举几个不是很恰当的例子来说明这四个IO Model:
    有A,B,C,D四个人在钓鱼:

    对应BIO,NIO,IO多路复用(select,epoll),AIO

    A用的是最老式的鱼竿,所以呢,得一直守着,等到鱼上钩了再拉杆;
    B的鱼竿有个功能,能够显示是否有鱼上钩,所以呢,B就和旁边的MM聊天,隔会再看看有没有鱼上钩,有的话就迅速拉杆;
    C用的鱼竿和B差不多,但他想了一个好办法,就是同时放好几根鱼竿,然后守在旁边,一旦有显示说鱼上钩了,它就将对应的鱼竿拉起来;
    D是个有钱人,干脆雇了一个人帮他钓鱼,一旦那个人把鱼钓上来了,就给D发个短信。

     

    package com.nxj.other;
    
    import java.nio.ByteBuffer;
    import java.util.Scanner;
    
    /**
     * @author ningxinjie
     * @date 2021/1/3
     * NIO使得用户程序可以直接使用直接内存,用于数据缓冲区,这样一来,对于文件频繁读写
     * 效率显然会提升,因为不需要内核态与用户态来回切换,来回拷贝了
     */
    public class NIOBufferTest {
        private static final int BUFFER = Integer.MAX_VALUE ;
        public static void main(String[] args) {
            ByteBuffer byteBuffer = ByteBuffer.allocateDirect(BUFFER);
            System.out.println("直接内存分配完毕");
            Scanner scanner = new Scanner(System.in);
            scanner.next();
            System.out.println("直接内存开始释放");
            byteBuffer = null;
            System.gc();
        }
    }
  • 相关阅读:
    treap模板
    Codeforces Round #446 (Div. 2)
    BZOJ 1001: [BeiJing2006]狼抓兔子 (最小割)
    NOIP2017总结
    Python 操作 Mysql 模块
    poj 3660 Cow Contest (传递闭包)
    poj 1964 Cow Cycling(dp)
    poj 3671 Dining Cows (Dp)
    cogs 线型网络(状压dp)
    codevs 2800 送外卖(状压dp)
  • 原文地址:https://www.cnblogs.com/ningxinjie/p/14206602.html
Copyright © 2020-2023  润新知