您的位置:首页 > 编程语言 > Java开发

java多线程实例-模拟购票

2015-07-02 11:38 555 查看
private static  List<String> object = new ArrayList<String>(); 
public static void main(String[] args) throws HttpException, IOException {
//模拟电影票
for(int i=0;i<10;i++){
object.add("电影票"+i);
}
//模拟购票

        MyThread thread1 = test.new MyThread();

        for(int i=0;i<20;i++){

         thread1 = test.new MyThread();

         thread1.start();

        }

}

class MyThread extends Thread{

        @Override

        public void run() {

         synchronized (object) {

         int listsize=(object.size()-1);

             if(0<object.size()){
//模拟订票

                System.out.println(Thread.currentThread().getName()+"来订票:"+object.get(listsize));

                try {

                    System.out.println("线程"+Thread.currentThread().getName()+"进入睡眠状态");

                    Thread.currentThread().sleep(2000);
//买票成功,将该票移出购票列表

                    object.remove(listsize);

                    object.wait();

                } catch (InterruptedException e) {

                    // TODO: handle exception

                }

                System.out.println("线程"+Thread.currentThread().getName()+"睡眠结束");

             }else{

             System.out.println("来迟了");

             }

}

        }

    } 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: