循环完成所花费的总时间对于每次执行总是不同的

GD_*_*ava 5 java

我有一个简单的下面的程序,它遍历一个数组

Integer [] intArray = new Integer[20000];
    int index=0;
    for(int i=10000; i>=0; i--){
        intArray[index]=i;
        index++;
    }

    long startTime = System.currentTimeMillis();
    for(Integer t : intArray){

        System.out.println(t);
    }
    long endTime = System.currentTimeMillis();
    long consumedTime = endTime-startTime;
    System.out.println("Consumed time "+ consumedTime);
Run Code Online (Sandbox Code Playgroud)

我总是得到不同的消耗时间值,如743,790,738,825,678.

为什么for循环所花费的时间对于每次执行总是不同的.

注意我在main方法中运行此代码.我的操作系统是Ubuntu,处理器是32位.

小智 1

这是因为当您运行 java 程序时,您的操作系统会切换任务并执行无数的同步操作。如果操作系统在运行时没有处理大量数据,则程序可能会很快,而当操作系统繁忙时,程序也可能会很慢。

换句话说,每次程序运行时,操作系统都会执行一组不同的并发任务,因此执行时间不同。