黑马程序员技术交流社区
标题:
关于多线程买票小程序
[打印本页]
作者:
amen0205
时间:
2013-3-6 21:48
标题:
关于多线程买票小程序
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();
//System.out.println("Hello World!");
}
}
class Ticket extends Thread
{
private static int ticket=100;// 注释1
public void run()
{
while (true)
{
if(ticket>0)
System.out.println(Thread.currentThread().getName()+"....sale..."+ticket--);
}
}
}
复制代码
毕老师视频里在多线程部分有个买票小程序,代码如上,问题:在注释1部分 这里加了静态后,整个程序运行OK 但毕老师说一般不用静态 就把这种方法毙掉了 是不是太牵强 ?
作者:
HM李超
时间:
2013-3-6 22:32
一般说,静态随着类的加载而一直存在于内存中,
生命周期过长,这样会消耗系统资源,为了提高程序的效率,所以最好不用静态!
作者:
陈圳
时间:
2013-3-6 22:42
不是牵强,是本来就是多线程程序,创建的线程不止一个,一来是为了后续介绍实现Runnable接口实现多线程共享资源的好处,二来是静态这种方式,不适用.
你想啊,卖票,如果真是给火车站卖,那得多少张分类的票,多少个静态的变量.不是牵强,是实际.
作者:
amen0205
时间:
2013-3-8 03:33
陈圳 发表于 2013-3-6 22:42
不是牵强,是本来就是多线程程序,创建的线程不止一个,一来是为了后续介绍实现Runnable接口实现多线程共享资 ...
我知道用Runnable接口来实现多线程更好一点 不过我感觉对一个小程序而言 定义一个静态对系统的消耗是可以忽略不计的 而且这里用了静态很OK 这种方法应该是可以的 当然对于现实问题 12306 花了5个亿都不行 咱这里不指望 呵呵
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2