多线程执行时间的差异

在Java当中,多线程执行时间是非顺序,这个究竟是怎么回事?

举例代码:

public class ICurrentThread extends Thread {
	@Override
	public void run(){
		super.run();
		System.out.println("this is my thread");
	}
}

public class CreateTheadTest {

	public static void main(String[] args) {
		System.out.println(Thread.currentThread().getName());
		ICurrentThread ict=new ICurrentThread();
		ict.start();
		System.out.println("run end");
	}

}
运行结果:

main
run end
this is my thread
当在一个进程当中出现两个线程的时候,这两个线程会根据线程调度规则竞争执行时间,顺序将会被打乱。例如示例中main线程中开启了另外一个线程ict,但是ict在运行时慢于main线程,出现了main线程早于ict线程执行完成,虽然main线程中存在执行语句在顺序上慢于ic

你可能感兴趣的:(java)