黑马程序员技术交流社区

标题: 好记性不如烂笔头呀! [打印本页]

作者: !!!嗯    时间: 2016-5-5 22:25
标题: 好记性不如烂笔头呀!
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++)+"份盒饭");
                        }
                }
        }
作者: frank5    时间: 2016-5-5 23:54
谢谢分享  赞一个!
作者: Jerry1    时间: 2016-5-6 00:33
好长啊!!!!
作者: liusong    时间: 2016-5-6 08:30
主要是想表达什么呢?
作者: chenxuzhong    时间: 2016-5-13 23:46
这个可以,代码写的不错  赞一个
作者: A20160580    时间: 2016-5-14 00:14
frank5 发表于 2016-5-5 23:54
谢谢分享  赞一个!

是的呢。。。。。。

作者: 换一个昵称    时间: 2016-5-28 00:38
赞一个!




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