java多线程请教!急急!

来源:百度知道 编辑:UC知道 时间:2024/06/08 02:41:46
在多线程的主程序定义:
thread1 t=new thread1();
thread1 t1=new thread1();
t1.start();
t.start();
和如下定义:
thread1 t=new thread1 ();
new Thread(t).start();
new Thread(t).start();
其他都不变,为什么运行结果不一样呢?前一种有问题。

前面是两个不同的线程对象的执行!
而后面是二个线和共享一个线程对象!
结果肯定完全不一样!

线程的东西要是结果还是同样顺序的话还叫线程么!

不一样才正常!

线程是由操作系统调度的,操作系统想让谁执行就让谁执行,线程之间没有任何顺序关系。

没学过《操作系统》这门课程吧

因为线程拿到时间片都是随机的,所以不一样.经过你的控制才能做出你想做的效果.比如用那些join()来控制线程

第一种不共享数据。
第二种共享数据。