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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© huangweicong 中级黑马   /  2016-10-18 00:49  /  1016 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


* 声明一个共享数组,起两个线程,
两个线程分别隔一段时间(可以写一个随机数),给数组中添加数据,
每一个线程为数组添加3个数据即可。


4 个回复

倒序浏览
gyy 中级黑马 2016-10-18 00:57:48
沙发
简单的并发写?加一个synchronize就好了,不知道你哪里不清楚呢
回复 使用道具 举报
用sleep暂停线程    用计数器判断是否退出循环。
回复 使用道具 举报
以前写的给你参考参考
class RunDemo implements Runnable{
        private static double[] num = null;
        private int count = 6;
        public RunDemo(){
                this.num = new double[count];
        }
        @Override
        public void run() {
                // TODO Auto-generated method stub
                for(int i=0;i<3;i++){
                       
                        this.set();
                        //System.out.println("num["+i+"]:"+this.num[i]);
                }
        }
        public synchronized void set(){
                if(this.count > 0){
                        try {
                                Thread.sleep(300);
                        } catch (InterruptedException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }
                        count--;
                        this.num[this.num.length -(this.count+1)] = this.getNum();
                        System.out.println(Thread.currentThread().getName()+"-->num["+(this.num.length -(this.count+1))+"]:"
                                                                +this.num[this.num.length -(this.count+1)]);
                }
        }
        public double getNum(){
                return Math.round(Math.random()*30+1+50)/100.0;
        }
}
public class Test7 {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                RunDemo r = new RunDemo();
                Thread t1 = new Thread(r);
                Thread t2 = new Thread(r);
                t1.start();
                t2.start();
        }
}
回复 使用道具 举报
还没学    ,,,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马