本文共 1124 字,大约阅读时间需要 3 分钟。
我想通过键盘输入“exit”来结束while循环,对于多线程不太了解,求大神指教,而且下面这个是自己试着写的,不知道为神马报空指针异常,请求援助!代码:importjava.util.Scanner;cla...
我想通过键盘输入“exit”来结束while循环,对于多线程不太了解,求大神指教,而且下面这个是自己试着写的,不知道为神马报空指针异常,请求援助!
代码:
import java.util.Scanner;
class Data2 {
public String value ="exit";
public int temp=0;
}
class Work2 {
public void process(Data2 data,String s) {
if(data.value.equals(s))
data.temp=1;
}
}
public class Test2 extends Thread{
private Work2 work;
public Test2(Work2 work2) {
this.work=work;
}
public Test2() {
}
public Data2 data = new Data2();
public void run() {
Scanner cin = new Scanner(System.in);
String ct=null;
while(cin.hasNext()){
ct=cin.next();
if("exit".equals(ct))
data.temp=1;
System.out.println(ct+" temp="+data.temp);
work.process(data, ct);
}
}
public void Moni(){
Thread thread = new Test2(new Work2());
thread.start();
while(true){
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(data.temp);
if(data.temp==1){
break;
}
}
}
public static void main(String[] args) throws Exception{
Test2 t = new Test2();
t.Moni();
}
}
空指针的问题解决了,但是参数还是传不过去,怎么才能把另一个线程里的参数传到主方法或其他方法里呢?
展开
转载地址:https://blog.csdn.net/weixin_32075843/article/details/114216077 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!