今天有朋友提到一个问题,“我在springBoot项目中建一个Controller,然后写两个方法,方法1中加个断点,然后请求方法1,进入断点之后再请求方法二,此时方法二会一直等待,等方法一执行完才能再执行方法二,这是什么原因呢?”
咱们用以下简单代码试一下
进入方法A断点之后,由下图可以看出,方法B确实是在等待状态,
然后咱直接让方法A走完,从控制台也可以看出,方法A执行完之后才执行方法B
这是因为调试工具原因,在断点处右键鼠标,可以看到Suspend默认是ALL,就是在调试的时候,其他线程会受到阻塞
然后我们把他改为Thread,Make Default再试下
效果如下:说明A在等待debug相应,B已经正常走完
然后再进方法A,让A走完,再看控制台输出 如下:
由此可见,此时已经确定是方法B可以不受到方法A阻塞,直接在方法A之前运行完。