黑马程序员技术交流社区

标题: 开启两个线程每隔一段时间分别向一个共享数组中添加元素,每个线程添加3个即可 [打印本页]

作者: cuisq    时间: 2016-6-14 08:02
标题: 开启两个线程每隔一段时间分别向一个共享数组中添加元素,每个线程添加3个即可
public class D10多线程_共享数组添加3 {
        public static void main(String[] args) {
                new myth().start();
                new myth().start();

        }
}

class myth extends Thread {

        static int i = 0;    //必须是静态的,要不然,每个对象就自建一个
        static int[] arr = new int[6];

        public void run() {
                while (true) {

                        synchronized (myth.class) {
                                if (i >= 6) {
                                        break;
                                }

                                try {
                                        sleep(100);
                                } catch (InterruptedException e) {

                                        e.printStackTrace();
                                }
                                arr[i] = i;
                                i++;
                        }

                        System.out.println("第" + i + "次添加 , 线程" + this.getName() + "向数组"
                                        + arr + "进行添加操作, 添加后,  数组各个值为" + arr[0] + "___" + arr[1]
                                        + "___" + arr[2] + "___" + arr[3] + "___" + arr[4] + "___"
                                        + arr[5]);
                }
        }
}
作者: dubei1993    时间: 2016-6-14 17:22
你写这么短,确定行吗?
作者: dubei1993    时间: 2016-6-14 17:26
两个问题:1.随机性没有保证;2.每个线程添加3个数据无法保证




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2