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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘德坤 中级黑马   /  2015-10-22 11:23  /  1147 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package com.itheima;

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

//声明一个共享数组,起两个线程,
//两个线程分别隔一段时间(可以写一个随机数),给数组中添加数据,
//每一个线程为数组添加3个数据即可。
public class Test21 {
        //写一个类实现Runnable接口,创建两个Thread对象传入该类
           //多线程操作共享数组需要同步synchronize
       public static void main(String...args){
               fillArray fa = new fillArray();
               Thread t1 = new Thread(fa);
               Thread t2 = new Thread(fa);
               t1.start();
               t2.start();
       }
}
class fillArray implements Runnable{
    //定义共享数组
        int[] arr = new int[6];
    Random r = new Random();
    int count = 0;
        public void run() {
                // 同步代码块
                synchronized(r){
                        while(count<arr.length){
                                int num = r.nextInt(20);
                                System.out.println(Thread.currentThread().getName()+"向数组中加入了"+num);
                                arr[count] = num;
                                count++;
                                try {
                                        r.wait(500);
                                } catch (Exception e) {
                                        e.printStackTrace();
                                }
                        }
                }
                System.out.println(Arrays.toString(arr));
        }
       
}

1 个回复

正序浏览
爱书法教师代表法奶萨发给你吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马