黑马程序员技术交流社区
标题:
多线程问题
[打印本页]
作者:
刘学明
时间:
2013-4-30 08:41
标题:
多线程问题
本帖最后由 刘学明 于 2013-5-1 18:43 编辑
多线程打印火车票的例子
如何使用extends Thread 这种方式使用共同打印100张火车票 除了把火车票静态以外
private static int tick = 100;
class Ticket extends Thread
{
private int tick = 100;
public void run()
{
while(true)
{
if(tick>0)
System.out.println(Thread.currentThread().getName()+"..."+tick--);
}
}
}
class ThreadTest
{
public static void main(String[] args)
{
Ticket t1 = new Ticket();
Ticket t2 = new Ticket();
Ticket t3 = new Ticket();
t1.start();
t2.start();
t3.start();
}
}
复制代码
作者:
杨同旺
时间:
2013-4-30 09:26
使用extends Thread这种方式,把火车票Ticket单独封装成一个对象,作为共享数据,也可以,以下是代码:
class SellTicket extends Thread
{
public SellTicket(Ticket ticket)
{
this.ticket = ticket;
}
private Ticket ticket;
@Override
public void run()
{
while(true)
ticket.printTicket();
}
}
class Ticket
{
private int count = 100;
synchronized void printTicket()
{
try{Thread.sleep(20);}catch(InterruptedException e){}
if(count>0)
System.out.println(Thread.currentThread().getName()+"..."+count--);
}
}
class ThreadTest
{
public static void main(String[] args)
{
Ticket t = new Ticket();
new SellTicket(t).start();
new SellTicket(t).start();
}
}
复制代码
作者:
符立波
时间:
2013-4-30 09:27
这是为技术分来的吗?
作者:
陈国斌
时间:
2013-4-30 10:21
可以使用单例设计模式啊!代码如下:
class Ticket
{
private int ticket = 100;
private static final Ticket t = new Ticket();
private Ticket(){}
public static Ticket getInstance()
{
return t;
}
public void print()
{
synchronized(t)
{
while(ticket>0)
{
try{Thread.sleep(10);}catch(Exception e){}
System.out.println(Thread.currentThread().getName()+"..."+ticket--);
}
}
}
}
class TicketPrint extends Thread
{
Ticket t = Ticket.getInstance();
public void run()
{
t.print();
}
}
class MaipiaoDanli
{
public static void main(String[] args)
{
TicketPrint tc1 = new TicketPrint();
TicketPrint tc2 = new TicketPrint();
TicketPrint tc3 = new TicketPrint();
TicketPrint tc4 = new TicketPrint();
tc3.start();
tc4.start();
tc1.start();
tc2.start();
}
}
复制代码
作者:
陈国斌
时间:
2013-4-30 10:22
写得比较简单,希望能帮到你
作者:
刘学明
时间:
2013-4-30 11:10
陈国斌 发表于 2013-4-30 10:21
可以使用单例设计模式啊!代码如下:
这个不错啊 试下看看
作者:
黄玉昆
时间:
2013-4-30 23:21
如果问题已解决,请将分类改为已解决,谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2