我想知道如何在Java中跨线程调用不同的函数。现在我做的方法是写我的run()我的线程的功能,从而与Java交叉线程函数调用
public volatile boolean invokeMyFunction = false;
public void run() {
while(true) {
if(invokeMyFunction) {
MyFunction();
invokeMyFunction = false;
}
}
}
,如果我想从一个线程写入之外运行的功能MyFunction的()“whateverobject.invokeMyFunction =真“,它会从线程内运行我的函数,因为该循环将会启动它。这对我来说很好,但是由于(true)循环,它占用了我100%的CPU。我可以通过在循环内部打一个Thread.sleep(1000)来解决这个问题,但这看起来很麻烦,我忍不住要相信这样做有更好的方法。
是否有可能会有多个函数调用? 您是否需要可以在第二个线程上调用任意数量函数的解决方案? – Lalaland 2011-12-20 05:58:15
理想情况下,我会喜欢一个允许在第二个线程上多次调用多个函数的解决方案,是的 – Macmee 2011-12-20 18:52:01