当前位置: 代码迷 >> J2SE >> 小弟我按孙鑫的视频教程运行他的一道例子,结果为什么跟他的不一样?
  详细解决方案

小弟我按孙鑫的视频教程运行他的一道例子,结果为什么跟他的不一样?

热度:81   发布时间:2016-04-24 14:35:04.0
我按孙鑫的视频教程运行他的一道例子,结果为什么跟他的不一样???
class   MultiThread
{
public   static   void   main(String[]   args)
{
MyThread   mt   =   new   MyThread();
new   Thread(mt).start();
new   Thread(mt).start();
new   Thread(mt).start();
new   Thread(mt).start();
while   (true)
{
System.out.println( "main   :   "   +   Thread.currentThread().getName());
}
}
}

class   MyThread   implements   Runnable
{
int   index   =   0;
public   void   run()
{
while   (true)
{
System.out.println( "thread   :   "   +   Thread.currentThread().getName()   +   "   :   "   +   index++);
}
}
}

他说index的值是连续的,我看他运行的也是,但在我的机器上运行却不是连续,产生的进程对象顺序也不是连续的,为什么呢????

------解决方案--------------------
你把while(true)改成,while(index <100),看一下一开始的几个值.
个人感觉是因为几个线程都取得了index的值,但只能有一个线程在屏幕上打印,其他的都被卡在out.println那了
------解决方案--------------------
应该是连续的
------解决方案--------------------
我运行的是无限循环.
------解决方案--------------------
不应该是连续的,四个mt同名线程哪个先运行那个后运行完全是不可知的,所以打印出的结果不连续。这是我运行的结果:

thread : Thread-3 : 4519
thread : Thread-3 : 4520
thread : Thread-3 : 4521
thread : Thread-3 : 4522
thread : Thread-0 : 4499
thread : Thread-0 : 4524
thread : Thread-0 : 4525
thread : Thread-0 : 4526
thread : Thread-0 : 4527
thread : Thread-0 : 4528
thread : Thread-0 : 4529
thread : Thread-0 : 4530
main : main
main : main
main : main
main : main
main : main
main : main
main : main
main : main
thread : Thread-3 : 4531
thread : Thread-3 : 4533
thread : Thread-3 : 4534
thread : Thread-3 : 4535
thread : Thread-3 : 4536
thread : Thread-3 : 4537
thread : Thread-3 : 4538
thread : Thread-3 : 4539
thread : Thread-1 : 4523
thread : Thread-1 : 4540
thread : Thread-1 : 4541
thread : Thread-1 : 4542
thread : Thread-1 : 4543
thread : Thread-1 : 4544
thread : Thread-1 : 4545
thread : Thread-1 : 4546
thread : Thread-2 : 4515
thread : Thread-2 : 4548
thread : Thread-2 : 4549
thread : Thread-2 : 4550
thread : Thread-2 : 4551
thread : Thread-2 : 4552
thread : Thread-2 : 4553
thread : Thread-2 : 4554
thread : Thread-3 : 4547
thread : Thread-3 : 4556
thread : Thread-3 : 4557
thread : Thread-3 : 4558
thread : Thread-3 : 4559
thread : Thread-3 : 4560
thread : Thread-3 : 4561
thread : Thread-3 : 4562
main : main
main : main
main : main
main : main
main : main
main : main
main : main
main : main
thread : Thread-0 : 4532
thread : Thread-0 : 4565
thread : Thread-0 : 4566
thread : Thread-0 : 4567
thread : Thread-0 : 4568
thread : Thread-0 : 4569
thread : Thread-0 : 4570
thread : Thread-0 : 4571
thread : Thread-3 : 4564
thread : Thread-3 : 4572
thread : Thread-3 : 4573
thread : Thread-3 : 4574
thread : Thread-3 : 4575
thread : Thread-3 : 4576
thread : Thread-3 : 4577
thread : Thread-3 : 4578
thread : Thread-2 : 4563
thread : Thread-2 : 4580
thread : Thread-2 : 4581
thread : Thread-2 : 4582
thread : Thread-2 : 4583
thread : Thread-2 : 4584
  相关解决方案