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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

!!!嗯

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© !!!嗯 初级黑马   /  2016-5-5 22:25  /  1221 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public static void main(String[] args) {
                ArrayList<Integer> list = new ArrayList<>();
                Random r = new Random();
                for (int i = 0; i < 5; i++) {
                        list.add(r.nextInt(10)+1);

                }
                MyMoney mm = new MyMoney(list);
                new MyMoney().start();
                new MyMoney().start();
                new MyMoney().start();
                new MyMoney().start();
                new MyMoney().start();
                }
        }
class MyMoney extends Thread{
        static private ArrayList<Integer> list = new ArrayList<>();
        public MyMoney(){}
        public MyMoney(ArrayList<Integer> list){
                this.list=list;
        }
        public void run(){
       
                        for(int i=0; i<list.size()-1;i++){
                                synchronized(MyMoney.class){
                                        if(list.size()==0){
                                                break;
                                        }
                                        try {
                                                Thread.sleep(300);
                                        } catch (InterruptedException e) {
                                                e.printStackTrace();
                                        }
                                        System.out.println(getName()+"抢到了"+list.get(i)+"元");
                                        list.remove(i);
                                        i--;
                        }
                        }
                }






public class Test_meal {

        /**
         * 共有1000份盒饭,可以在两个窗口领取,假设每次装饭的时间是3000ms,请用线程描述取反过程,并打印剩余饭盒数量
         */
        public static void main(String[] args) {
                Meals m = new Meals();
                m.setName("一号");
                m.start();
                Meals m1 = new Meals();
                m1.setName("二号");
                m1.start();
        }

}
class Meals extends Thread{
        private static int meal = 1 ;
        public void run(){
                while(true){
                        synchronized(Meals.class){
                if(meal>1000){
                        break;
                }
                try {
                        Meals.sleep(3000);
                } catch (InterruptedException e) {
                        e.printStackTrace();
                }
                System.out.println(getName()+"窗口卖出第"+meal++ +"份盒饭,总共还剩"+ (1000+1-meal++)+"份盒饭");
                        }
                }
        }

评分

参与人数 1技术分 +1 收起 理由
酱油 + 1 赞一个!

查看全部评分

6 个回复

倒序浏览
谢谢分享  赞一个!
回复 使用道具 举报
好长啊!!!!
回复 使用道具 举报
主要是想表达什么呢?
回复 使用道具 举报
这个可以,代码写的不错  赞一个
回复 使用道具 举报
frank5 发表于 2016-5-5 23:54
谢谢分享  赞一个!

是的呢。。。。。。
回复 使用道具 举报
赞一个!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马