public class RunThread extends Thread{ private boolean isRunning = true; public boolean isRunning() { return isRunning; } public void setRunning(boolean isRunning) { this.isRunning = isRunning; } @Override public void run() { System.out.println("进入run了"); while(isRunning == true) { } System.out.println("线程停止了"); } } public class Run { public static void main(String[] args) { try { RunThread thread = new RunThread(); thread.start(); Thread.sleep(1000); thread.setRunning(false); System.out.println("已经复制为false"); } catch (InterruptedException e) { e.printStackTrace(); } } } 线程会打印听了吗
时间: 2024-04-28 08:22:02 浏览: 82
不会打印出"线程停止了",因为在while循环中,线程一直在等待isRunning的值变为false,而在主线程中,我们只让线程休眠了1秒钟,就立即将isRunning变为了false,导致线程无法检测到isRunning变为false的情况,从而一直处于循环中,无法跳出循环,也就无法执行后面的语句。
相关问题
线程有新建、可运行、中断和死亡状态。定义一个Thread的子类NewThread,一个Runnable接口的实现类RunThread,使线程对象进入可运行RUNNABLE状态的语句是()。
可以通过以下代码使线程对象进入可运行(RUNNABLE)状态:
```
NewThread newThread = new NewThread(new RunThread());
newThread.start();
```
其中,NewThread是Thread的子类,RunThread是实现了Runnable接口的类。通过将RunThread对象作为参数传入NewThread的构造函数中,实现了将Runnable对象与Thread对象关联。然后调用start()方法启动线程,使其进入可运行(RUNNABLE)状态。
2023/07/14 10:28:01 - 表输入.0 - ERROR (version 9.2.0.0-290, build 9.2.0.0-290 from 2021-06-02 06.36.08 by buildguy) : Unexpected error 2023/07/14 10:28:01 - 表输入.0 - ERROR (version 9.2.0.0-290, build 9.2.0.0-290 from 2021-06-02 06.36.08 by buildguy) : org.pentaho.di.core.exception.KettleException: 2023/07/14 10:28:01 - 表输入.0 - !TableInput.Exception.NoParametersFound! 2023/07/14 10:28:01 - 表输入.0 - 2023/07/14 10:28:01 - 表输入.0 - at org.pentaho.di.trans.steps.tableinput.TableInput.readStartDate(TableInput.java:87) 2023/07/14 10:28:01 - 表输入.0 - at org.pentaho.di.trans.steps.tableinput.TableInput.processRow(TableInput.java:124) 2023/07/14 10:28:01 - 表输入.0 - at org.pentaho.di.trans.step.RunThread.run(RunThread.java:62) 2023/07/14 10:28:01 - 表输入.0 - at java.lang.Thread.run(Thread.java:750)
这个错误日志显示了一个意外错误。根据日志,问题出现在表输入步骤中,提示找不到参数。可能是由于参数配置不正确或缺少必要的参数导致的。您需要检查表输入步骤的参数设置,确保参数被正确配置并提供了必要的参数。另外,还可以检查日志中提到的代码行,例如TableInput.java的第87行,以及处理数据行的代码。如果问题仍然存在,可能需要进一步调查和排除故障。
阅读全文