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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package cn.itcast.thread;
/*
*  多线程技术,模拟实际售票效果
*    总数100张,3个窗口同时进行售票,3个线程
*   
*   
*   
*/

class ThreadTicket extends Thread{
        private static int tickets = 100;
        Object obj=new Object;
        public void run(){
            while(true){
       synchronized(obj){
                    if(tickets > 0){
                    System.out.println(getName()+ " 出售第"+tickets--);
                    }
              }  
            }
        }
}

public class ThreadDemo7 {
        public static void main(String[] args) {
                ThreadTicket tt0 = new ThreadTicket();
                ThreadTicket tt1 = new ThreadTicket();
                ThreadTicket tt2 = new ThreadTicket();
               
                tt0.start();
                tt1.start();
                tt2.start();
        }
}

2 个回复

倒序浏览
synchronized(obj) 三个线程的obj都不相同啊synchronized(ThreadTicket.class)试试
回复 使用道具 举报
Object obj=new Object; 这个语句错了, 少了一对括号, 你obj对象就没有创建出来
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马