下面程序的运行结果是:

'pongping'

代码示例:

public static void main(String args[]){
	Thread t = new Thread(){
		public void run(){
			Pong();
		}
	};

	t.run();
	System.out.print('ping');
}

static void pong(){
	System.out.print('pong');
}

分析:

  1. Thread t = new Thread() 创建了一个新的线程对象 t。
  2. t.run() 直接调用了线程的 run() 方法,在当前线程中执行了 run() 方法里面的代码,即调用了 Pong() 方法,打印 'pong'。
  3. System.out.print('ping'); 在当前线程中继续执行,打印 'ping'。

结论:

程序执行的结果是 'pongping',因为代码中直接调用了 run() 方法,而不是 start() 方法,因此线程并没有真正地开始执行,而是在当前线程中执行了 run() 方法。如果使用 start() 方法,程序将会输出 'pingpong',因为 start() 方法会启动一个新的线程,该线程会与主线程并发执行。

Java 多线程程序运行结果分析:pingpong 的输出顺序

原文地址: https://www.cveoy.top/t/topic/jyYT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录