各位大神在上,有礼了。
本来是个很简单的小代码,不知何故出了这般问题,各位大神见多识广,给瞅瞅呗。
代码很简单
class SellTicket implements Runnable
{
//描述票的数量
private int tickets=30;
//售票的动作,这个动作需要被多线程执行,那就是线程任务代码,需要定义在run方法中
//线程任务重工通常都有循环结构。
public void run(){
while(true){
if(tickets>=0)
System.out.println(Thread.currentThread().getName()+"-------"+"剩余"+tickets+"张票");//打印线程名称
tickets--;
}
}
}
class ThreadDemo3
{
public static void main(String[] args)
{
//创建Runnable接口的子类对象
SellTicket st=new SellTicket();
//创建四个线程对象,并将Runnable接口的子类对象作为参数传递给Thread的构造函数
Thread t1=new Thread(st);
Thread t2=new Thread(st);
Thread t3=new Thread(st);
Thread t4=new Thread(st);
//开启四个线程
t1.start();
t2.start();
t3.start();
t4.start();
}
}
输出也没什么问题

程序到这里都没有什么问题,也该结束了。
可是问题来了
在以上结束十多秒后突然一直跳出下面的内容

而且不手动结束,他会一直打印。
求大神告知,为什么会出现这种情况,我在代码里没看出什么问题啊
本来是个很简单的小代码,不知何故出了这般问题,各位大神见多识广,给瞅瞅呗。
代码很简单
class SellTicket implements Runnable
{
//描述票的数量
private int tickets=30;
//售票的动作,这个动作需要被多线程执行,那就是线程任务代码,需要定义在run方法中
//线程任务重工通常都有循环结构。
public void run(){
while(true){
if(tickets>=0)
System.out.println(Thread.currentThread().getName()+"-------"+"剩余"+tickets+"张票");//打印线程名称
tickets--;
}
}
}
class ThreadDemo3
{
public static void main(String[] args)
{
//创建Runnable接口的子类对象
SellTicket st=new SellTicket();
//创建四个线程对象,并将Runnable接口的子类对象作为参数传递给Thread的构造函数
Thread t1=new Thread(st);
Thread t2=new Thread(st);
Thread t3=new Thread(st);
Thread t4=new Thread(st);
//开启四个线程
t1.start();
t2.start();
t3.start();
t4.start();
}
}
输出也没什么问题

程序到这里都没有什么问题,也该结束了。
可是问题来了
在以上结束十多秒后突然一直跳出下面的内容

而且不手动结束,他会一直打印。
求大神告知,为什么会出现这种情况,我在代码里没看出什么问题啊