以下是我自己写的,请大家指正!
- package com.test;
- import java.util.Random;
- public class Addt {
- public static void main(String[] args) {
- final int[] arr = new int[6];//定义数组
- for(int x = 0;x<2;x++){//用for循环创建两个线程
- if(x==0){//第一个线程,添加数组的前三个元素
- new Thread(){
- @Override
- public void run() {
- //for循环给数组前三个元素赋值
- for(int z = 0;z<3;z++){
- try {//这里直接停1秒,可以写随机数,挺随机的时间
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- arr[z]=new Random().nextInt(10)+1;
- }
- }
- }.start();
- }else{
- new Thread(){
- @Override
- public void run() {
- //for循环给后三个元素赋值
- for(int z = 3;z<6;z++){
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- arr[z]=new Random().nextInt(10)+1;
- }
- }
- }.start();
- }
- }
- //打印数组
- //注意,执行打印动作的是主线程,这里需要休息一段时间,因为给数组赋值的两个新线程有休息的动作,有可能新线程还没完成赋值动作主线程已经执行打印数组动作,数组就全是0!!!
- try {
- Thread.sleep(10000);//多休息一会儿
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- for(int a : arr){
- System.out.print(a+" ");
- }
- }
- }
复制代码 |