看看下面的代码
class TacketSell implements Runnable
{
int tacket=100;
public void run()
{
while(true)
{
if(tacket>0)
{
System.out.println(Thread.currentThread().getName()+" tacket: "+tacket);
tacket--;
}
}
}
}
class TacketSale
{
public static void main(String[] args)
{
TacketSell TS=new TacketSell();
new Thread(TS).start();
new Thread(TS).start();
new Thread(TS).start();
new Thread(TS).start();
}
}
在main方法中创建了四个线程,这四个线程均能对TacketSell中的tacket实现修改(是这样的嘛?)
运行后,我预期的结果是tacket从100减为1的过程中,应该是四个线程对tacket进行了修改
可是运行结果只是第一个线程对tacket进行修改
不知道我描述清楚了没,知道的麻烦说下好吗?
class TacketSell implements Runnable
{
int tacket=100;
public void run()
{
while(true)
{
if(tacket>0)
{
System.out.println(Thread.currentThread().getName()+" tacket: "+tacket);
tacket--;
}
}
}
}
class TacketSale
{
public static void main(String[] args)
{
TacketSell TS=new TacketSell();
new Thread(TS).start();
new Thread(TS).start();
new Thread(TS).start();
new Thread(TS).start();
}
}
在main方法中创建了四个线程,这四个线程均能对TacketSell中的tacket实现修改(是这样的嘛?)
运行后,我预期的结果是tacket从100减为1的过程中,应该是四个线程对tacket进行了修改
可是运行结果只是第一个线程对tacket进行修改
不知道我描述清楚了没,知道的麻烦说下好吗?
是不是和系统有关系,麻烦知道的说下
每次ticket--完可以让它sleep一下(比如100ms)应该就能看出交替了
应该是和CPU有关系的
按照7楼的朋友改了一下 看出切换来了
再次感谢