簡體   English   中英

Java:以指定的時間間隔執行方法

[英]Java: Execute a method at a specified time interval

我有這個問題。

如果可能的話,我需要有一個不斷重復的方法,但又不會使系統過載。

據我了解,while(true){... code ...}將掛起系統。

您會建議我使用什么來掛起系統?

謝謝

另外:我的方法的執行可能需要5分鍾或50毫秒,並且我希望方法完成后可以重復執行jsut

查看Timer和TimerTask。 它們正是您所需要的。

編輯:仍然是您需要的。 看一下API

您可以使用任何調度程序。

例如QUARTZ是一個很好的例子。

您可以啟動新線程並在后台運行任務。 有關更多信息,請參見Java並發教程。

如果您一次只想為該任務運行1個線程,則可以使用一個線程執行程序來執行

如果您希望在第一個重復完成后立即開始新的重復並在同一線程中進行,則不需要調度程序。 如果這確實是您想要的,那么“ while(true)”正是這樣做的方法。

您對“掛起系統”的關注表明,您希望允許在程序中的其他線程上發生其他事情,或者您希望該序列在未指定的某些條件下結束。

在第二種情況下,您需要在while循環中測試終止條件,而不是“ while true”(或使用“ break”)。 在第一種情況下,您需要確保其他線程可以訪問CPU。 調用

Thread.currentThread().yield();

每次迭代可能是確保其他線程有機會執行的最簡單方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM