zoukankan      html  css  js  c++  java
  • thread == 票池

    public class ThreadDemo2 {
        public static void main(String[] args){
            TicketPool tp = new TicketPool();
            Salers s1 = new Salers("Marry ",tp);
            Salers s2 = new Salers("Jarry ",tp);
            s1.start();
            s2.start();
        }
    
    
    }
    
    //票池
    class TicketPool{
        private int tickets =100;
        public  synchronized int getTickets(){// 票池对象已经独立了,所以可以根据当前对象(也就是票池自身)进行参考了
            int currt = tickets; // 三个线程共有同一个票池,所以可以以自身作为参考, 之前那个需要静态
            tickets --; // 前面那个是定义在线程内部,也就是说,如果不以类作为参考,那么三个线程会创建各自的参照物。
            return currt;
        }
    }
    
    class Salers extends Thread{
        private TicketPool tp; // 这里不能用 new TicketsPool 不然会每个线程都创建各自的票池。
        private String name;
        public Salers(String name,TicketPool pool){
          this.name = name;
          this.tp = pool;
        }
        public void run(){
            while(true) {
                int cur = tp.getTickets();
                if (cur >0) {
                    System.out.println(name + ">>>>>>>>>> " + cur);
                }else{
                    return ;
                }
            }
        }
    }
    
  • 相关阅读:
    Android开发之记账本开发第四天
    动手动脑——继承与多态
    跟踪某个类所创建对象的个数
    动手动脑——类与对象
    石家庄地铁模拟
    动手动脑——方法
    查询单词出现次数
    动手动脑——JAVA语法基础
    原码反码补码
    ATM机模拟系统
  • 原文地址:https://www.cnblogs.com/jijizhazha/p/7740168.html
Copyright © 2011-2022 走看看