public class TrainTicketSell
{
public static int ticket=100;
public static void main(String args[])
{
new Sell().start();
new Sell().start();
new Sell().start();
new Sell().start();
}
}
class Sell extends Thread
{
public static String str=new String ("");
public void run()
{
synchronized(str)
{
while(TrainTicketSell.ticket>0)
System.out.println(Thread.currentThread().getName()+":"+TrainTicketSell.ticket--);
}
}
}
//不知道为什么只有一个线程在运行呀
{
public static int ticket=100;
public static void main(String args[])
{
new Sell().start();
new Sell().start();
new Sell().start();
new Sell().start();
}
}
class Sell extends Thread
{
public static String str=new String ("");
public void run()
{
synchronized(str)
{
while(TrainTicketSell.ticket>0)
System.out.println(Thread.currentThread().getName()+":"+TrainTicketSell.ticket--);
}
}
}
//不知道为什么只有一个线程在运行呀
解决方案 »
- Java的一个学生添加记录问题用Preparestatement
- 大家知道Slider这个组件吗?这个组件能触发鼠标事件吗?
- 奇怪的NoClassDefFoundError:大家帮忙看看!
- Process process=Runtime.getRuntime().exec("");中产生停滞(阻塞,blocking),怎么解决?
- setPreferredSize()方法的作用是什么?
- 编了个小的java程序,运行结果不是我想象的,帮我看看好吗?
- 用UltraEdit时,如何设置类路径,使之实现"."功能?
- 请问哪里有《数据结构与算法分析(JAVA版)》的电子书下载????
- 请解释一下:System.out.println(data)
- 新手一枚,求老师给看一下哪里错误编译通不过!
- 晕,内存溢出了,好像是char[] 太大了,咋回事呢?
- 数组判断???
这个是个类属性,你对它加的synchronized(str),
只能有一个进程访问把。
每个线程操作的是同一个ticket,所以看起来像只有一个线程。
class Sell extends Thread
{
Sell(){
System.out.println("线程启动");
}
public static String str=new String ("");
public void run()
{
synchronized(str)
{while(TrainTicketSell.ticket>0)
System.out.println(Thread.currentThread().getName()+":"+TrainTicketSell.ticket--);
}
}
}
应该可以看到打印了5次。