java - 线程离开后重新启动

标签 java android multithreading

我有一个包含循环的线程

while(isRunning){
}

isRunning 是一个 boolean 变量,值为 true,当有人单击按钮时,它会得到 false,因此它会离开循环并线程的 run() 函数。

我想创建另一个按钮,单击该按钮将重新进入 run() 函数。

我不确定当我离开run()函数时线程是否会终止或只是停止。 我尝试过使用 thread.run() 但它不起作用。

我也在其他人关于此事的问题中寻找答案,但似乎没有任何帮助。感谢您的帮助

最佳答案

当线程完成处理其代码时,无法重新启动它。您可以:

  1. 创建一个新线程并将Runnable传递给该线程。

  2. 如果您需要经常使用 run() 方法,请使用 Executor。您可以使用Executors.newSingleThreadExecutor(),它将为您提供一个工作线程。 (可重复使用的线程)。

      class Example {
           static ExecutorService executor = Executors.newSingleThreadExecutor();
    
           static Runnable run = new Runnable() {
                public void run() {
    
                }
           };
    
           public static void main(String[] args) {
                //anytime you wanna run that code..
                executor.execute(run);
           }
      }
    

关于java - 线程离开后重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22581077/

相关文章:

java - 如何使用 Rxjava2 在 Room 数据库中的 Textview 上显示 Flowable 数据

java - 在单独线程上刷新 Gui

multithreading - Perl 模块 ForkManager 不工作

java - 如何将 MD5 哈希值转换为字符串?

java - 如何在 IntelliJ 中为特定对象实例设置断点条件?

java - Spring Boot H2 db 显示没有记录

Android Wear DataMap 条目有效期多长时间

java - 如何使用 DynamicJasper API 在页脚中添加页码选项?

java - 将 ADT 从 21.0 更新到 21.1

c++ - 序列点是否会阻止代码跨临界区边界重新排序?