加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 当你在其中调用另一个方法时,方法的执行流程是否会等待

发布时间:2020-12-15 04:50:00 所属栏目:Java 来源:网络整理
导读:假设您在MyClass中有以下方法 public class MyClas{ public void startWork(){ YourClass.doSomeWork(); //more things to do in this method }} 和YourClass看起来像这样: public class YourClass{ public static void doSomeWork(){ // a lot of work to
假设您在MyClass中有以下方法

public class MyClas{
  public void startWork(){
    YourClass.doSomeWork();
    //more things to do in this method
  }
}

和YourClass看起来像这样:

public class YourClass{
  public static void doSomeWork(){
    // a lot of work to do here
    // maybe even invoke other methods in some other classes
  }
}

现在我想知道的是代码YourClass.doSomeWork();在startWork()方法中执行,脚本会继续到同一方法的下一行,还是等到YourClass中的doSomeWork()完成执行?

请注意,doSomeWork()不会返回任何内容.

解决方法

大多数语言中的默认语义,特别是Java中的默认语义当然是代码按顺序执行.

含义:除非你做其他事情,比如将任务提交到ExecutorService(或创建一个Thread对象并调用它的start()方法),当然外部方法将按顺序执行所有调用,并且每个内部调用需要在下一个执行之前完成.

换句话说:除非您在源代码中使用特定的构造,否则事情将由您放入代码的确切顺序由单个线程执行.是的,事情会变得更复杂,因为指令可以在不同级别重新排序,但Java内存模型的这些方面与此处提出的基本问题无关).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读