需求:简单的买票程序,多个窗口卖票,多线程
定义一个类Ticket实现Runnable接口,
定义成员属性int类型的票数nums
实现run()方法,run方法中
while(true)的死循环,打印nums--
获取Ticket对象,new出来
获取Thread()对象,new出来,构造参数:Runable对象
调用Thread对象的start()方法,开启线程
此时会有线程安全问题,使用synchronized同步代码块解决安全问题
避免死锁问题,同步中嵌套同步,而锁不同
class Ticket implements Runnable { private int nums = 100; @OverrIDe public voID run() { while (true) { synchronized (this) { if (nums > 0) { try { Thread.sleep(10); } catch (Exception e) { e.printstacktrace(); } System.out.println(Thread.currentThread().getname() + "===" + (nums--)); }else{ break; } } } }}class TicketDemo { /** * @param args */ static main(String[] args) { Ticket ticket = new Ticket(); Thread(ticket).start(); Thread(ticket).start(); }}
总结
以上是内存溢出为你收集整理的[javaSE] 多线程(售票例子)全部内容,希望文章能够帮你解决[javaSE] 多线程(售票例子)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)