黑马程序员技术交流社区

标题: 咋写了同步代码块还不行? [打印本页]

作者: 暴走的牛奶    时间: 2015-8-25 23:16
标题: 咋写了同步代码块还不行?
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();
        }
}

作者: lion_good    时间: 2015-8-25 23:28
synchronized(obj) 三个线程的obj都不相同啊synchronized(ThreadTicket.class)试试
作者: 腹黑兔    时间: 2015-8-26 13:30
Object obj=new Object; 这个语句错了, 少了一对括号, 你obj对象就没有创建出来




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2