首页 > 解决方案 > 在线程中运行的另一个方法调用的方法也会在该线程中运行吗?

问题描述

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 应用程序中保持我的活动打开。

标签: androidmultithreading

解决方案


事实:当我们使用 IntelliJ IDE 时,我们都知道有一个名为public static void main(String ars[]){ }remember?的方法。所以这是一个方法,在这个方法中运行的所有代码都将在主线程中运行。

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

示例:所以线程是一辆车,这辆车调用的任何东西都将在那辆汽车上行驶,即使一个人被已经在那辆汽车上行驶的人调用,也必须在那辆汽车上行驶。每个人都需要一辆车去旅行。每个方法都需要一个线程来运行。

额外的事实 -你知道在 android 中有一个称为 UI 线程的线程,所以每当你想对 UI 进行更改时,你必须使用那个线程,否则它会导致应用程序崩溃。

我向您推荐这门 [由 Michael Pogrebinsky 编写的 udemy 课程],以了解 Java 中的多线程。Java 多线程、并发和性能优化


推荐阅读