protected void waitAndSweep(String symbol) {
try {
long sweepTime = symbolInfo.getSweepTime(symbol);
long timeSinceLastSweep = System.currentTimeMillis() - sweepTime;
long waitTime = timeSinceLastSweep >= getInterval() ? 0 : getInterval() - timeSinceLastSweep;
logTradeEvent("waitAndSweep", symbol, "waittime: " + waitTime);
if (waitTime > 0){
Thread.sleep(waitTime);
}
callSweep(symbol);
}catch (InterruptedException e) {
Thread.currentThread().interrupt();
}catch (Exception e) {
logEvent(StrategyEntry.ERROR, "waitAndSweep", symbol,
"Exception caught...", e);
}
}
Пока он спит (Thread.sleep), Как прервать эту нить, чтобы она вышла из метода waitandSweep?Прерывать нить
private void replace(){
// interrupt the thread;
// call waitandsweep again here;
waitandsweep(symbol)
Возможно, вы должны использовать CountDownLatch вместо Thread.sleep() и прерывания ... Или некоторые другие средства из параллельного пространства имен. – Fildor
То, что вы хотите достичь точно – virendrao