黑马程序员技术交流社区
标题:
多线程只输出单线程
[打印本页]
作者:
Johnny_Hu
时间:
2015-3-24 20:42
标题:
多线程只输出单线程
package com.Painter.Thread;
public class RunnableDemo1 {
public static void main(String[] args)
{
Test2 test2 = new Test2();
Thread t1 = new Thread(test2);
Thread t2 = new Thread(test2);
Thread t3 = new Thread(test2);
Thread t4 = new Thread(test2);
t1.start();
t2.start();
t3.start();
t4.start();
}
}
class Test2 implements Runnable
{
private int num=100;
public void run()
{
while (true)
{
if(num>0)
System.out.println(Thread.currentThread().getName()+"="+num--);
}
}
}//我上面定义了四个线程 为何输出时只输出一个 哪里出错了
复制代码
作者:
殷俊
时间:
2015-3-24 21:11
应该是num太小了,换成1000试试
作者:
关山明月
时间:
2015-3-24 21:14
我运行有四个线程啊,你多执行几次,或者将num设大一些,如1000,你看到只有一个线程输出那也是很可能的,因为这个线程获取到cpu执行权后直接打印完了,以致其他线程获取执行权的时候已经不满足输出条件了。
作者:
Johnny_Hu
时间:
2015-3-25 09:10
关山明月 发表于 2015-3-24 21:14
我运行有四个线程啊,你多执行几次,或者将num设大一些,如1000,你看到只有一个线程输出那也是很可能的, ...
对对 可能数字太小了 CPU一获取其中的一个执行权后 马上就执行完了 还没来得及切换到其他的线程
作者:
DxxD
时间:
2015-3-25 09:19
应该是num太小了。。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2