[javaSE] 多线程(售票例子)

[javaSE] 多线程(售票例子),第1张

概述需求:简单的买票程序,多个窗口卖票,多线程 定义一个类Ticket实现Runnable接口, 定义成员属性int类型的票数nums 实现run()方法,run方法中 while(true)的死循环,打

需求:简单的买票程序,多个窗口卖票,多线程

 

定义一个类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] 多线程(售票例子)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1154496.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存