我对程序执行有一些概念认知不清,想请教基础好的同学一些问题。
以下是我的认知:
1、方法内执行多个类的方法,应该是必须等前一个方法执行完了(有执行结果了)之后才会之后后面的代码。这个可以称之为同步的代码执行。
2、当启动新的线程时,程序不需要等到新的线程里的代码执行完之后,才会继续执行主线程。而是启动完新的线程之后继续执行主线程后面的代码。
以下是我的问题:
1、对于普通的方法(代码就是本地执行,类似new 、syso这样的代码),我觉得没问题。但假如方法里是执行mybatis(或者其它我不了解的第三方调用)的程序,
如:
syncOborMDMMapper.updateHospital();
syncOborMDMMapper.updateProduct();
syncOborMDMMapper.updateProductLine();
而这些方法执行的是存储过程:
{call sync_hospital}
我不知道这种情况,是否也是同步的呢,必须等到updateHospital这个存储过程执行完了之后才会之后后面的存储过程呢?
2、其实这个问题我可以本地去测试,通过log日志去认知,但其实我想了解的是,是否在java里,我只要不是启动新的线程,方法调用本身必须等到这个方法执行完了之后才会执行它所在的块级区域后面的代码?这套机制不会受方法具体是做什么的。
3、也就是说,以后只要我看到代码没有显示的启动线程,则必然是同步的,无需多考虑其它情况