//模拟售票厅售票情况:假设有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 查看评论