A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jk7130866 中级黑马   /  2015-7-25 21:13  /  180 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

下面我们来看看Runable接口是不是实现了对象的共享吧,

public class Sale {


        public static void main(String[] args) {

                // TODO Auto-generated method stub

        Ticket t=Ticket.getInctance();//获取卖票实例

        new Thread(t,"窗口1:    ").start();//启动匿名卖票线程1,2,3,4

        new Thread(t,"窗口2:    ").start();//这里熟悉一下构造函数,参数别搞错了

        new Thread(t,"窗口3:    ").start();

        new Thread(t,"窗口4:    ").start();


        }

       

}

class Ticket implements Runnable{//卖票类是实现Runnable接口

         

         private  static final Ticket t=new Ticket();//单例化

         private  Ticket(){}

         public static Ticket getInctance(){

                 return t;

         }

         

         private int tick=100;//共享的票

        @Override

        public void run() {//卖票逻辑

                // TODO Auto-generated method stub

                while(tick>0){

                System.out.println(Thread.currentThread().getName()+"****"+tick--);

                       

                }

               

        }

       

}看看结果:

窗口1:    ****4

窗口4:    ****5

窗口3:    ****6

窗口4:    ****1

窗口1:    ****2

窗口2:    ****3


2 个回复

倒序浏览
字符串是一种特殊的对象,建立就不会改变,而且“ABC”如果已经建立,你在更另一个引用赋值的话不是再建立一个新的对象,因为它已经存在常亮池中
回复 使用道具 举报
你这个用单例模式和不用没啥区别呀,也没有加锁售票的代码,打印的票号很可能会重复
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马