私はいくつかの機能を持っています
func1()
{
while (true)
{
isdateok()
{ // return true or false
}
}
}
isdateok() がタイムアウトの前に true を返す場合は 5 秒 (または構成されている任意のタイムアウト) まで実行し、それ以外の場合は続行し、5 秒 (またはタイムアウト) 後に処理を停止してタイムアウトとして返す必要があります。
時間依存のタスクを実行できるScheduledExecutorServiceをご覧ください。
あなたの質問を理解できたかどうかはわかりませんが、答えは次のとおりです。
public boolean func1(long duration) {
long t = System.currentTimeMillis();
while (System.currentTimeMillis() - t < duration) {
if (isdateok())
return true;
else
Thread.yield();
}
return false;
}