在线程中运行的另一种方法调用的方法也将在该线程中运行吗?

时间:2020-08-12 16:55:48

标签: android multithreading

public static void main(String[] args) {
  new Thread(new Runnable() {
            @Override
            public void run() {
                getLinks();
            }
        });
    }
}

     private void getLinks(){
       String link;
        // my work
       Download(link);
     }
    
    private void Download(String Link){
        // my work
    }

另一个方法也将在该线程中运行,因为我们调用getlinks()然后调用getlinks()称为Download()方法,下载将在后台运行,还是我必须在Android中保持活动打开状态应用程序。

1 个答案:

答案 0 :(得分:0)

事实:当我们使用IntelliJ IDE时,我们都知道有一个名为var mgr = new Oidc.UserManager({ response_mode: 'query' }); mgr.signinRedirectCallback().then(res => { window.location = "/signin-callback"; }).catch(error => { window.location = "/"; }) 的方法还记得吗?因此,这是一个方法,该方法中运行的所有代码都将在主线程中运行。

答案-因此,如果我们从线程中调用方法,则该方法中的每一行代码都将在该线程中运行。

示例:因此,线程是一辆汽车,并且即使已经在该汽车中行驶的人呼叫了某个人,该汽车所调用的任何东西都将在该汽车中行驶。乘那辆车旅行。每个人都需要开车旅行。每个方法都需要一个线程来运行。

其他事实-您知道在android中有一个名为UI线程的线程,因此,每当您要对UI进行更改时,您都必须使用该线程,否则它将使应用程序崩溃。 / p>

我建议您阅读此课程[Michael Pogrebinsky撰写],以了解Java中的多线程。 Java Multithreading, Concurrency & Performance Optimization