黑马程序员技术交流社区
标题:
多线程的问题
[打印本页]
作者:
wunairensheng95
时间:
2015-7-14 11:21
标题:
多线程的问题
class Ticket implements Runnable
{
int num=20;
public void run()
{
while (true)
{
if (num>0)
{
System.out.println(Thread.currentThread().getName()+"..."+num--);
}
}
}
}
class XianCheng2
{
public static void main(String[] args)
{
Runnable r=new Ticket();
Thread t1=new Thread(r);
Thread t2=new Thread(r);
Thread t3=new Thread(r);
Thread t4=new Thread(r);
t1.start();
t2.start();
t3.start();
t4.start();
}
}
复制代码
在虚拟机中运行的时候,为什么还要手动Ctrl+c结束?代码运行完毕虚拟机不应该自动结束么?其次就是多个线程执行run方法中的代码,为什么在打印的时候结果不是按照20、19、18、17。。。顺序来的,而是凌乱的呢?比如说0线程执行run,输出num20,然后3线程执行run,输出num19,应该是有序的啊
作者:
masai158
时间:
2015-7-14 17:46
因为你是while(true)...
作者:
木头人之死
时间:
2015-7-14 19:11
你这个while是死循环,没有循环结束条件,还有就是你这个不是同步的。毕老师视频里面有很清楚的讲解!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2