Javaで異なる関数のクロススレッドを呼び出す方法を知りたいと思います。今、私はそれをやっている方法はとてもJavaでのクロススレッド関数呼び出し
public volatile boolean invokeMyFunction = false;
public void run() {
while(true) {
if(invokeMyFunction) {
MyFunction();
invokeMyFunction = false;
}
}
}
としての私のスレッドの私の実行()関数を記述することであり、私は「そのスレッドの書き込みの外から)関数のMyFunctionを(実行したい場合whateverobject.invokeMyFunction =それはループがそれを拾うので、スレッド内から自分の関数を実行します。これは私のためにはうまくいくが、while(true)ループのためにCPUが100%使用されている。私はループ内でThread.sleep(1000)をたたくだけで問題を解決できますが、これは面倒なようですが、これを実行するより良い方法があると信じることはできません。
複数の関数呼び出しが存在する可能性はありますか? 2番目のスレッドで任意の量の関数を呼び出すことができるソリューションが必要ですか? – Lalaland
理想的には、2番目のスレッドで複数の関数を複数回呼び出すことができるソリューションが好きです。 – Macmee