A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴光新 黑马帝   /  2013-6-2 23:33  /  1217 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Jiewin 于 2013-6-4 22:59 编辑

//售票程序,有100张票,4个售票窗口同时售票

class Ticket extends Thread
{
private static int tick = 100; //初始化票数为100张。
public void run()
{
while(true)
{
if(tick>0)
{
System.out.println(Thread.currentThread().getName()+" "+tick--);
}
}
}
}

class TicketDemo
{
public static void main(String[] args)
{
Ticket t1 = new Ticket();
Ticket t2 = new Ticket();
Ticket t3 = new Ticket();
Ticket t4 = new Ticket();

t1.start();
t2.start();
t3.start();
t4.start();
}
}

运行后,dos的光标不能移动了,怎么回事?代码哪里有问题吗?
光标在下面不能动了,怎么解决?


查看了进程,java.exe还在运行的,并且占用CPU 50%,导致系统变慢。肯定是代码问题,怎么解决呢?


评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 神马都是浮云

查看全部评分

1 个回复

倒序浏览
你的循环
while(true)
{
if(tick>0)
{
System.out.println(Thread.currentThread().getName()+" "+tick--);
}没有定义结束标记,这个循环执行起来,是没有办法停止的,你可以先把用Ctrl+C键,强行把程序关下。然后在循环里加上结束标记再运行
如:if(tick<=0)
           break;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马