Bu kodu çalıştırarak, test değişkenini 5 saniyeliğine artırmayı ve ardından bitirmeyi beklerim. Bunu çalıştırdığınızdaDöngü sona ermezken döngü süresi
import java.util.Timer;
import java.util.TimerTask;
public class Test {
private static boolean running;
public static void main(String[] args) {
long time = 5 * 1000; // converts time to milliseconds
long test = Long.MIN_VALUE;
running = true;
// Uses an anonymous class to set the running variable to false
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() { running = false; }
}, time);
while(running) {
test++;
}
timer.cancel();
System.out.println(test);
}
}
Ancak bitmez programı (ı varsayalım, ben zaman makul bir miktar verdik). Ben
while(running) {
System.out.println();
test++;
}
iken döngü değiştirmek Ancak program zaman beklenen miktarda bitirir (ve çizgilerin bir sürü yazdırır). Anlamıyorum Bu davranış neden ortaya çıkıyor?
Eğer 'uçucu' çalıştırıyorsanız? –
Sadece kodunuzu JDJ 7'yi IntelliJ 11 ile test ettim ve her iki versiyon da birkaç saniyede bitti. Kaçmak için ne kullanıyorsun? –
@AndyTurner vay, daha önce hiç volatile anahtar sözcüğe rastlamadım. Thats kod çalışır. Teşekkürler! – DenverCoder9