gpt4 book ai didi

java - 如何在评估正则表达式时消除线程阻塞 - 灾难性回溯

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

如何终止正在评估正则表达式的线程,--这种情况会发生灾难性的回溯?

有没有办法不使用 Thread.stop(),而是杀死线程。

我尝试过 future.cancel(true),但这不会终止线程,只是尝试中断线程。

鉴于这是一个类:

public class myRegex implements Runnable
{
public void run(){

this.evaluateRegex(pattern, matcher); // internally calls the patterns and matcher...
}

public void evaluateRegex(Stirng pattern, String matcher)
{
// does the code specific logic
}

}

如何终止一个有回溯的长时间运行的线程?

最佳答案

How do I terminate a long going thread, which has backtracking?

每个回溯都有一个条件来评估返回或调用下一个级别。

if(conditionToReturn){
return;
}
else{
result = callRecursiveBacktrack();

}

应该用一个丑陋的实例变量canRun打破你的设计模式(同步与否取决于情况)像这样的东西:

if (this.canRun) {
if (conditionToReturn) {
return;
} else {
result = callRecursiveBacktrack();
if (!this.canRun) {
return;
}
}
else {
return;
}

关于java - 如何在评估正则表达式时消除线程阻塞 - 灾难性回溯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16962208/

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