Java基础复习:线程练习1
来源:互联网 发布:php命名规范 编辑:程序博客网 时间:2024/05/16 15:22
售票问题:有50张票需要3个窗口卖出;用两种线程方式卖票,观察两种方式卖票的结果有什么不同。
class Ticket1 extends Thread{int num = 50;//50张票Ticket1(String name) {super(name);}public void run() {for (int i = 0; i < 200; i++) {if(num>0){System.out.println(getName()+"卖出了第"+ num-- +"张票");}}}}public class TicketDemo1 {public static void main(String[] args) {new Ticket1("A").start();new Ticket1("B").start();new Ticket1("C").start();}}
继承方式:运行后发现,每个窗口都卖出了50张票,并不符合题目要求。
class Ticket2 implements Runnable{int num = 50;@Overridepublic void run() {for (int i = 0; i < 200; i++) {if(num>0){System.out.println(Thread.currentThread().getName()+"卖出了第"+ num-- +"张票");}}}}public class TicketDemo2 {public static void main(String[] args) {Runnable target = new Ticket2();new Thread(target,"A").start();new Thread(target,"B").start();new Thread(target,"C").start();}}
实现方式:基本能够满足题目要求
比较:
1)使用继承方式,资源不能共享,继承方式,继承了Thread类之后,就不能再继承其他类了,但继承方式更为简单
2)推荐使用接口方法,方便以后拓展,资源共享
- Java基础复习:线程练习1
- Java基础复习:线程同步练习
- Java基础复习:线程练习2
- Java基础复习:面向对象练习1
- java线程基础复习
- java基础复习-线程
- Java基础复习:线程创建
- java基础复习之线程
- Java基础复习:StringBuilder小练习
- Java基础复习(四)-递归练习
- Java基础复习:线程通信、生产者消费者
- java基础复习之多线程Thread 十三
- java基础复习--1
- JAVA基础复习1
- JAVA基础复习1
- java基础复习1
- java基础复习--复习总结1
- Java基础复习---异常练习(二):实现图形面积
- Smart Pointers智能指针
- mib语法
- 《TCP/IP详解》读书笔记
- 添加xml文件自动提示方法
- C#中TreeView组件使用方法初步
- Java基础复习:线程练习1
- Java中"=="与equals()方法的区别
- sql表查询某一字段为空的记录的问题
- Ext使用form布局时 使用hide()方法或者setVisible()隐藏textfile 等组件 filedLable不隐藏问题
- linux txt
- 在windows下调试linux内核
- 平台调用:C# 使用非托管dll函数
- ReSharper使用手册:配置语法高亮字体和颜色
- java的八大基本类型