How to check elapsed milliseconds using Thread.Sleep in for loop with Java

2 Answers

0 votes
public class Program {
    public static void testSpeed(int ms) {
        long currentTime = System.currentTimeMillis();

        for (int i = 0; i < 1000; i++) {
            try {
                Thread.sleep(ms);
            } catch (InterruptedException e) {
                Thread.currentThread().interrupt(); // restore interrupt status
                System.out.println("Sleep interrupted at iteration " + i);
                return;
            }
        }

        System.out.println("Executed in " + (System.currentTimeMillis() - currentTime) + " ms");
    }

    public static void main(String[] args) {
        testSpeed(1);
    }
}



/*
run:

Executed in 1090 ms

*/

 



answered Jul 9, 2025 by avibootz
0 votes
import java.util.concurrent.TimeUnit;

public class Program {
    public static void testSpeed(int ms) {
        long startTime = System.currentTimeMillis();

        for (int i = 0; i < 1000; i++) {
            try {
                TimeUnit.MILLISECONDS.sleep(ms); // Sleeps for ms milliseconds
            } catch (InterruptedException e) {
                Thread.currentThread().interrupt(); // Restore interrupt status
                System.out.println("Sleep interrupted");
                return;
            }
        }

        long elapsed = System.currentTimeMillis() - startTime;
        System.out.println("Executed in " + elapsed + " ms");
    }
    
    public static void main(String[] args) {
        testSpeed(1);
    }
}



/*
run:

Executed in 1080 ms

*/

 



answered Jul 9, 2025 by avibootz

Related questions

1 answer 207 views
1 answer 141 views
141 views asked Jan 29, 2024 by avibootz
4 answers 2,721 views
2,721 views asked Mar 24, 2021 by avibootz
1 answer 168 views
...