6

再帰はプロセッサとRAMに大きな影響を与えますか?つまり、私のスレッドの1つにメソッドがあり、それ自体を呼び出す可能性が非常に高いということです。1秒間に約1回セルフコールできるとしましょう。私のアプリは停止せずに少なくとも24時間実行する必要があるため、(60 * 60 * 24)86400の自己呼び出しメソッドが提供されます。

2番目の(メイン)スレッドにどのように影響しますか?

私の悪い英語とコードがないことをお詫びしますが、私は家から書いていません。

4

4 に答える 4

7

86400 番目の呼び出しの前に再帰呼び出しの文字列を終了する return ステートメントがない場合、スタックに再帰呼び出しが多すぎるため、スタック オーバーフロー エラーが発生する可能性があります。可能であれば、反復ソリューションを実装してみてください。

于 2012-08-07T20:24:52.970 に答える
1

それがあなたの問題に適しているかどうかはわかりませんが、基本的に1秒に1回実行する必要があると言っているので、スケジューラーが役立つように思えます。Quartz Schedulerを使用してみてください。

ジョブを作成し、単純なトリガーまたは cron トリガーを使用して、毎秒永久に実行するように指示できます。Quartz のドキュメント。

于 2012-08-07T20:31:13.277 に答える
1

Java では、多くの場合、ループを使用する方が再帰を使用するよりも効率的です。再帰が最も効率的な場合もあります。

1 つのプロセッサで、1 秒あたり 1,000 万回または 1 日あたり数兆回の呼び出しを簡単に行うことができます。86400 はそれほど多くないので、心配する必要はありません。

1 秒間に約 1 回自己呼び出しできるとしましょう。

それはあまり意味がありません。ループを使用することは、多くのアプローチです。終了時に戻りたい場合にのみ、再帰を使用してください。

于 2012-08-07T20:51:21.547 に答える