为什么thread.join通常用于在android中停止线程

use*_*099 2 java android

查看几个android示例,我看到一种趋势,其中使用join()方法暂停了线程:

编辑:请假定正确定义了2个线程。编辑了对join()的调用

public class MainUI extends Activity{
   private GraphicsViewThread g;
   private BackendDataViewThread b;

   void onCreate(){
      g = new GraphicsViewThread();
      g.start();
      b = new BackendDataViewThread();
      b.start();
   }
   .
   .
   .
   void pauseGame(){
      try {
        g.join();
      }catch (InterruptedException e){
         e.printStackTrace();
      }
      try {
        b.join();
      }catch (InterruptedException e){
         e.printStackTrace();
      }
      GraphicsViewThread = null;
      BackendDataViewThread  = null;
   }
}
Run Code Online (Sandbox Code Playgroud)
  1. GraphicsViewThread和BackendDataViewThread加入哪个线程?
  2. 使用join()有什么需要?我不能立即将引用设置为null吗?

Yai*_*sky 5

我怀疑您的代码无法编译,但是无论如何-我会回答。
这不仅涉及Android,还涉及纯Java。
使用“ join”可确保您的代码将等待线程结束。
这不是您想要的吗?
此外,请勿将线程的引用设置为null。
您无法保证确切的线程结束时间,因此在线程对象结束之前将线程对象设置为null是不好的做法。