gpt4 book ai didi

java - 无法访问线程类的方法?

转载 作者:行者123 更新时间:2023-12-01 09:41:26 26 4
gpt4 key购买 nike

我无法从我的主类中调用 R1 的任何函数? (seton()、setoff() 等)

public class Threads implements Runnable {
public String threadName;
private volatile boolean running = true;

public Threads( String name) {
threadName = name;
}

public void setoff() {
running = false; //this.running = false;
}

public void seton() {
running = true; //this.running = true;
}

public void run() {
while(this.running) {
System.out.println("running");
}
if(this.running ==false) {
System.out.println("stopped");
}
System.out.println("Thread " + threadName + " exiting.");
}
}

--类(class)结束

public class MainFrame extends javax.swing.JFrame {  
Thread R1 = null;

public MainFrame() {
initComponents();
}

private void jbtnstartActionPerformed(java.awt.event.ActionEvent evt) {
R1 = new Thread(new Threads("Thread 1"));
R1.start();
}
}

最佳答案

您无法调用 Threads 类的任何方法,因为您没有对该类型的对象的引用。

将代码更改为:

Threads R1 = new Threads("Thread 1");
Thread thread = new Thread(R1);
thread.start();

Thread.sleep(1000);
R1.setoff();
<小时/>

另外,if(this.running ==false) 应该写成 if (!this.running)

或者更好的是,应该删除该行。执行该行的唯一方法是退出前面的 while 循环,只有当 this.running 为 false 时才会发生这种情况,因此 if 语句中的测试是多余的。

关于java - 无法访问线程类的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38418050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com