gpt4 book ai didi

java - 线程在打印之前完成执行

转载 作者:行者123 更新时间:2023-12-02 05:01:48 25 4
gpt4 key购买 nike

我在执行一些代码时正在写入文件(Java)。您可以在下面找到所使用的代码,该代码由 JVM 调用的“线程 B”执行。

writer = new PrintWriter(new BufferedWriter(new FileWriter("table.csv")));

(...)


while ( (m_bEnExecution) && (!m_bFinTestRules) ) {

//Calculate new rule
CalculateNewRule(writer);
}

writer.close();

在CalculateNewRule 方法中,创建了一个AssociationRule 的新实例,它将接收writer 作为实例变量。 AssociationRule 内的函数之一执行打印。

writer.println(outputRule);
writer.flush();

问题似乎是这个函数是由 AWT 线程调用的,并且在CalculateNewRule(writer)方法内要写入文件的最后一行永远不会被写入,除非我显式强制执行线程在 while 循环之后停止。知道可能是什么问题吗?有没有优雅的方法来处理这个问题?

在一个答案中,建议我将打印线程设置为守护线程,但我不知道如何在该特定线程上执行此操作。

最佳答案

可能是调用线程在该线程完成之前就已经结束了。如果是这种情况,请使用守护线程。提供更多详细信息也许我们可以提供帮助。

关于java - 线程在打印之前完成执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28210238/

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