我想知道如何在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