BIO:同步阻塞
NIO:同步非阻塞
AIO:异步非阻塞
异步:
就是调用方法一个设置一个监听,调用完成以后会通知去取,
在没有得到结果之前,该调用就返回或继续执行后续操作。
前台基本用前端用的Future async await 实现异步,后台通过多线程实现一步
同步:
就是就是线程不停的去轮训,那个方法完成了.就去拿执行结果,
在没有得到结果之前,该调用就不返回或继续执行后续操作。
线程状态:新建,可运行,运行,阻塞,死亡
阻塞:
就是线程不能切换一直处于等待状态.发出了I/O请求时,JVM会把该线程置为阻塞状态
sleep或者wait,或者锁都可以让线程置于阻塞状态
非阻塞:
线程可以切换到其他资源组作其他事情.
因为我们有多个线程,但是cpu只有一个,同一时间只能做一件事,
所以cpu需要切换,切换一个线程就会被挂起,阻塞其实就是阻塞的cpu切换线程
https://www.cnblogs.com/mhq-martin/p/9035640.html
多线程死锁
https://www.cnblogs.com/sthu/p/9660914.html
数据库死锁https://www.cnblogs.com/wezheng/p/8366029.html