0
点赞
收藏
分享

微信扫一扫

BIO NIO AIO

Sky飞羽 2021-09-27 阅读 127

BIO: 同步阻塞

线程池案例

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class SingleThreadPollDemo {

public static void main(String[] args) {
// 创建一个使用单个 worker 线程的 Executor,以无界队列方式来运行该线程。
ExecutorService pool = Executors.newSingleThreadExecutor();

Runnable task1 = new SingelTask();
Runnable task2 = new SingelTask();
Runnable task3 = new SingelTask();

pool.execute(task3);
pool.execute(task2);
pool.execute(task1);

// 等待已提交的任务全部结束 不再接受新的任务
pool.shutdown();
}
}

class SingelTask implements Runnable{

@Override
public void run() {
System.out.println(Thread.currentThread().getName() + "正在执行… …");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + "执行完毕");
}

}

NIO:同步非阻塞


Buffer(缓冲区):ByteBuffer,CharBuffer,ShortBuffer,IntBuffer,LongBuffer,FloatBuffer,DoubleBuffer

Channel(通道):SocketChannel,ServerSocketChannel

Selector(多路复用器): Selector,AbstractSelector


AIO: 一部非阻塞

新增下面四个异步通道


AsynchronousSocketChannel

AsynchronousServerSocketChannel

AsynchronousFileChannel

AsynchronousDatagramChannel(已被放弃)


举报

相关推荐

0 条评论