【发布时间】:2018-05-22 05:51:23
【问题描述】:
我想在后台检查 2 个整数是否相同。当它们相同时,我希望线程停止并且我希望调用我的函数之一。我该怎么做?
【问题讨论】:
-
看看你到目前为止所尝试的内容会很有用minimal reproducible example
标签: java java-threads background-thread
我想在后台检查 2 个整数是否相同。当它们相同时,我希望线程停止并且我希望调用我的函数之一。我该怎么做?
【问题讨论】:
标签: java java-threads background-thread
我在这里假设您知道如何在后台设置和执行 java 线程。在你的runnable中,当定义你的run()函数时,你可以设置一个while true循环,然后比较两个数字的值,如果它们相等则中断循环。如果它们不相等,它会在循环之前休眠 x 毫秒。在循环之后,如果值相等,则调用要调用的函数。它应该是这样的:
public void run() {
while(true){
if(a == b){
break;
}
Thread.sleep(200);
}
myfunction();
}
【讨论】:
试试这个,
Runnable runnable = new Runnable() {
@Override
public void run() {
if (!runnable.interrupted()) {
if( varOne.equals(varTwo)) {
yourFn();
runnable.interrupted();
} else {
//Do nothing.
}
}
};
new Thread(runnable).start();
【讨论】: