//模拟售票厅售票情况:假设有10张票,有4个售票窗口.
//用继承Thread创建线程的方式
/*
class TicketMan
{
public static void main(String[]args)
{
//创建4个线程
Ticket t0=new Ticket();
Ticket t1=new Ticket();
Ticket t2=new Ticket();
Ticket t3=new Ticket();
t0.start();
t1.start();
t2.start();
t3.start();
}
}
class Ticket extends Thread
{
int tk=10;
public void run()
{
while(tk>0)
{
System.out.println(Thread.currentThread().getName()+"窗口正在售出"+tk--+"号票.");
}
}
}
*/
//输出结果:每个窗口都卖了10张票,显然不符现实(如下图).

//用实现Runnable创建线程的方式
class TicketMan
{
public static void main(String[]aresg)
{
Ticket t=new Ticket();
//创建4个线程
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
}
}
class Ticket implements Runnable
{
int tk=10;
public void run()
{
while(tk>0)
{
System.out.println(Thread.currentThread().getName()+"窗口正在售出"+tk--+"号票.");
}
}
}
//输出结果:4个窗口,成功把10张票随机分配售完(如下图).

//结论: /* 使用Runnable接口创建多线程,适合多个相同的程序代码的线程去处理分享同一个资源的情况,把虚拟CPU(线程)同程序的代码数据有效分离,较好体现了面向对象的设计思想. */

CSDN
Java编程技术交流QQ群:171396965 技术需要交流,技术需要与时俱进.这里是优秀爱好Java编程的集聚地,我们一起学习,共同进步.加入时请注明Java字样,谢谢.

作者:StellaAh 发表于2011-10-6 14:45:56 原文链接
阅读:344 评论:2 查看评论

浙公网安备 33010602011771号