求java高手相助菜鸟!eclipse出现的诡异问题!!有图有真相!!!

2024-12-29 09:01:39
推荐回答(2个)
回答1:

这个很正常啊,t.start()只是启动了一个子线程并且去竞争CPU资源,这个时候就是这个子线程和主线程在竞争,所以结果有两种情况:

  1. 如果子线程先竞争到了cpu,那么就会先执行 m1,结果就是 1000,i=1000

  2. 如果主线程先竞争到了cpu,那么就会先执行 m2,结果就是 100,i=1000

你在eclipse和控制台下多运行几次,这两种情况应该都会出现的。

回答2:

这不是很正常嘛,多线程程序的运行并不保证每次执行的顺序都一样。黑窗口是先执行了m1(),eclipse里先执行了m2()。