同步和异步
阻塞和非阻塞
同步io,异步io,阻塞io,非阻塞io
java的bio,nio,aio
io分两个阶段,1.用户线程发起io指令,操内核线程返回数据是否就绪,不就绪线程怎么办2.实际的io操作,是内核线程操作还是用户线程操作
5种io模型:
阻塞io
非阻塞io
多路复用io,java的nio是这种,线程不阻塞,但是一直请求cpu查询数据是否就绪
信号驱动io
异步io,java的aio,只有这种才是真正的异步非阻塞,java7支持
线程池的原理
1.规定好最大线程数,则jvm的线程数不会超过这么多
2.将所有的待工作线程放到list里
3.在保证线程池总数小于最大线程,并且list有线程的时候,创建runnable r = list.remove(0),执行r,自然终止
线程池的本质只是控制run状态的线程总数