lock时,一定会等他锁住的代码段执着完之后,再去执行下面的语句吗?

在打开串口,发送命命代码段使用了lock
然后在lock后执行了关闭串口

如果断点到发送命令处,可以执行到发送语句。
如果不跑断点,发送语句似乎没执行,因为没有收到执行指令
如果在发送后加延时,可以执行成功。因此可能是串口命令没发完,就执行了关闭语句?

使用lock时,一定会等他锁住的代码段执着完之后,再去执行下面的语句吗?