他只是说每隔一段时间存入就行了,没必要交替吧。然后共享的数组和角标可以直接放在主类中。
- public class Gongxiang
- {
- public int index=0;//在主类中设置索引并初始化以便其他类引用
- public static void main(String[] args)
- {
- int[] share=new int[6];//设置想要存入入局的数组
- Gongxiang gg=new Gongxiang();//创建一个主函数对象以得到共享的索引
-
- //创建线程并启动
- Thread t1=new Thread(new WriteArr(share,gg),"1号线程");
- Thread t2=new Thread(new WriteArr(share,gg),"2号线程");
- t1.start();
- t2.start();
-
- //线程执行完后才能让主函数遍历数组
- try
- {
- t1.join();
- t2.join();
- }
- catch(Exception e)
- {
- e.printStackTrace();
- }
-
- //遍历存入数据的数组
- for(int i:share)
- System.out.println(i);
- }
- }
- class WriteArr implements Runnable
- {
- private int[] share;
- private Gongxiang gg;
-
- public WriteArr(int[] share,Gongxiang gg)//初始化构造函数,获取数组与主类对象
- {
- this.share=share;
- this.gg=gg;
- }
-
- public void run()
- {
- for(int i=0;i<3;i++)//每个线程存3个数据
- {
- try
- {
- Thread.sleep((int)(Math.random()*10));//每次睡眠一段时间再存
- }
- catch(Exception e)
- {
- e.printStackTrace();
- }
- synchronized(share)//同步加锁防止索引错误
- {
- this.share[gg.index++] = (int)(Math.random()*10);//存入随机数
- System.out.println(Thread.currentThread().getName()+"存入了"+share[gg.index-1]);//输出存入信息
- }
- }
- }
- }
复制代码 |