zoukankan      html  css  js  c++  java
  • java线程死锁

    public class Demo6DeadLock {
    
        public static void main(String[] args) {
            //创建线程任务对象
            Ticket ticket = new Ticket();
            //创建三个窗口对象
            Thread t1 = new Thread(ticket, "窗口1");
            Thread t2 = new Thread(ticket, "窗口2");
            Thread t3 = new Thread(ticket, "窗口3");
    
            //卖票
            t1.start();
            t2.start();
            t3.start();
        }
    
        static class Ticket implements Runnable {
    
            Object lock = new Object();
            private int ticket = 100;
    
            public void run() {
                String name = Thread.currentThread().getName();
                while (true) {
                    if ("窗口1".equals(name)) {
                        synchronized (lock) {
                            sell(name);
                        }
                    } else {
                        sell(name);
                    }
                    if (ticket <= 0) {
                        break;
                    }
                }
            }
    
            private synchronized void sell(String name) {
                synchronized (lock) {
                    if (ticket > 0) {
                        System.out.println(name + "卖票:" + ticket);
                        ticket--;
                    }
                }
            }
        }
    }
  • 相关阅读:
    Java程序设计作业02
    Java程序设计作业01
    DS博客作业05
    DS博客作业04
    DS博客作业03
    DS博客作业02
    DS博客作业01
    C博客作业06
    C博客作业05
    C语言——数组作业批改
  • 原文地址:https://www.cnblogs.com/angdh/p/15564429.html
Copyright © 2011-2022 走看看