0
点赞
收藏
分享

微信扫一扫

BIO NIO AIO

Sky飞羽 2021-09-27 阅读 134

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 条评论