黑马程序员技术交流社区
标题:
多线程无规律输出??
[打印本页]
作者:
枫儿
时间:
2013-10-8 20:51
标题:
多线程无规律输出??
本帖最后由 枫儿 于 2013-10-9 10:30 编辑
public static void main(String[] args) {
Thread t1=new Thread(new Thread1());
Thread t2=new Thread(new Thread2());
t1.start();
t2.start();
}}
class Thread1 implements Runnable{
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("t1......"+i);
}
}
}
class Thread2 implements Runnable{
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("t2......"+i);
}
}
复制代码
我创建两个线程,t1和t2,为什么开启后一人输出一次的,不是无规律的么?
输出结果:
t1......0
t2......0
t1......1
t2......1
t1......2
t2......2
t1......3
t2......3
t1......4
t2......4
t1......5
t2......5
作者:
吴清源
时间:
2013-10-8 20:59
这跟你CPU时间片的划分有关,ti和t2是交替运行的,各占CUP的时间片差不多,所以输出的结果看似交替的输出,不是无规律的输出。如果你不想看到交替输出,你可以改变两个两个线程的优先级,增加输出的次数,后面输出的次数就会不一样了
作者:
killuakillua898
时间:
2013-10-8 21:06
是无规则的 你可以看毕老师的视频有讲解 和你的电脑配置双核单核有关
作者:
杨增坤
时间:
2013-10-8 21:06
你多运行几次,结果就会和你想要的一样了,只是CPU分配的原因
作者:
a283398689
时间:
2013-10-8 21:13
是CPU的问题,. 只会有微弱的差距, 跟CPU分的状态有关~ 在弱弱的透露下 有的CPU 号称双核, 其实也撒单核心
作者:
To
时间:
2013-10-9 08:42
如果问题已解决,请将帖子改为提问结束,如果没有解决请楼主继续提问,谢谢合作
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2