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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

创建5条线程,红包内有1-10元随机。让这些线程去抢红包,然后输出抢到多少钱。

public static void main(String[] args) {
                // TODO Auto-generated method stub
                final Qiang q = new Qiang();
                        new Thread(){public void run() {
                                        while(true){
                                                try {
                                                        q.bag1();
                                                } catch (Exception e) {
                                                        // TODO Auto-generated catch block
                                                        e.printStackTrace();
                                                }
                                        }
                                        };
                        }.start();
                        new Thread(){public void run() {
                                while(true){
                                        try {
                                                q.bag2();
                                        } catch (Exception e) {
                                                // TODO Auto-generated catch block
                                                e.printStackTrace();
                                        }
                                }
                                };
                }.start();
                                new Thread(){public void run() {
                                        while(true){
                                                try {
                                                        q.bag3();
                                                } catch (Exception e) {
                                                        // TODO Auto-generated catch block
                                                        e.printStackTrace();
                                                }
                                        }
                                        };
                        }.start();
                        new Thread(){public void run() {
                                while(true){
                                        try {
                                                q.bag4();
                                        } catch (Exception e) {
                                                // TODO Auto-generated catch block
                                                e.printStackTrace();
                                        }
                                }
                                };
                }.start();
                new Thread(){public void run() {
                        while(true){
                                try {
                                        q.bag5();
                                } catch (Exception e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                }
                        }
                        };
                }.start();
                                                }
                                        }
                class Lock{}
                class Qiang{
                        Lock lo = new Lock();
                       
                        public void bag1() throws Exception{
                                Random r = new Random();
                                synchronized(lo){
                                        Thread.sleep(300);
                                        System.out.println("第一个"+"="+(r.nextInt(10)+1));
                                }
                        }
                       
                        public void bag2() throws Exception{
                                Random r = new Random();
                                synchronized(lo){
                                       
                                        Thread.sleep(300);
                                        System.out.println("第二个"+"="+(r.nextInt(10)+1));
                                }
                        }
                        public void bag3() throws Exception{
                                Random r = new Random();
                                synchronized(lo){
                                        Thread.sleep(300);
                                        System.out.println("第三个"+"="+(r.nextInt(10)+1));
                                }
                        }
                        public void bag4() throws InterruptedException{
                                Random r = new Random();
                                synchronized(lo){
                                        Thread.sleep(300);
                                        System.out.println("第四个"+"="+(r.nextInt(10)+1));
                                }
                        }
                        public void bag5() throws Exception{
                                Random r = new Random();
                                synchronized(lo){
                                        Thread.sleep(300);
                                        System.out.println("第五个"+"="+(r.nextInt(10)+1));
                                }
                        }
                }

2 个回复

正序浏览
抢红包不是要设定总额和红包数量么,然后5条线程去抢,输出多少钱,而且抢的是一次,不是像楼主这样,5条线程各自抢各自的
回复 使用道具 举报
用一个线程发红包,另外5个抢就可以了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马