gpt4 book ai didi

java - 一个将继续运行的线程?

转载 作者:行者123 更新时间:2023-11-29 21:09:26 25 4
gpt4 key购买 nike

我正在编写一些 Android 代码,这是结构:(伪)

public class AThread extends Thread {
public void run() {
int i = 0;
while(true){
i++;
System.out.println(i);
}
}
}

然后我新建一个 AThread 类的实例并调用 start() 方法。我的问题是:int i 似乎并没有在 while 循环中继续添加。为什么是这个原因,如何让线程继续运行任务写在 while 循环中。

因为我正在运行一些实时分析功能...

这是我写的真实的:

    int i = 0;
running = true;
while(running) {
i++;
System.out.println(i);
if((lines = bufferedReader.readLine()) != null) {
System.out.println("analyzing");
// read two lines per time.
result = filter(lines, bufferedReader.readLine());
if(!result[0].equals("emp")) {
System.out.println("x: " + result[0] + " " + "y: " + result[1]);
System.out.println(MainActivity.analysisKeyPress.classify(Integer.valueOf(result[0]), Integer.valueOf(result[1]), "0"));
System.out.println("insert into db..");
MainActivity.dbhelper.addKeyLog(getCurrentRunningService(), result[0], result[1]);
}
}
}

似乎 int i 不会增加,直到有几行供 BufferedReader 读取。

最佳答案

如果你注释掉这部分:

result = filter(lines, bufferedReader.readLine());
if(!result[0].equals("emp")) {
System.out.println("x: " + result[0] + " " + "y: " + result[1]);
System.out.println(MainActivity.analysisKeyPress.classify(Integer.valueOf(result[0]), Integer.valueOf(result[1]), "0"));
System.out.println("insert into db..");
MainActivity.dbhelper.addKeyLog(getCurrentRunningService(), result[0], result[1]);
}

循环工作。

很明显,该部分中的某些方法会阻止您的代码。尝试运行调试器并逐步执行代码以查看代码停止执行的位置。这就是你的循环不继续的原因。

关于java - 一个将继续运行的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23435427/

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