【发布时间】:2011-12-20 05:46:24
【问题描述】:
我想知道如何在 Java 中跨线程调用不同的函数。现在我这样做的方式是编写我的线程的 run() 函数
public volatile boolean invokeMyFunction = false;
public void run() {
while(true) {
if(invokeMyFunction) {
MyFunction();
invokeMyFunction = false;
}
}
}
如果我想从该线程外部运行函数 MyFunction(),请编写“whateverobject.invokeMyFunction = true”,它将从线程内运行我的函数,因为该循环会拾取它。这对我很有用,但由于那个 while(true) 循环,它使用了我 100% 的 CPU。我可以通过在循环内打一个 Thread.sleep(1000) 来解决这个问题,但这看起来很乱,我不禁相信有更好的方法来做到这一点。
【问题讨论】:
-
函数调用是否可能不止一个?您是否需要一个可以在第二个线程上调用任意数量函数的解决方案?
-
理想情况下我会喜欢一个允许在第二个线程上多次调用多个函数的解决方案,是的
标签: java multithreading function