黑马程序员技术交流社区

标题: 代码如下,线程题 [打印本页]

作者: dangyongping    时间: 2016-5-12 07:20
标题: 代码如下,线程题
本帖最后由 dangyongping 于 2016-5-12 07:24 编辑
  1. <div class="blockcode"><blockquote>package com.heima.lianxi1;

  2. import java.util.Random;

  3. public class Xiancheng {

  4.         /**
  5.        
  6. * 21、声明一个共享数组,起两个线程,两个线程分别隔一段时间(可以写一个随机数),给数组中添加数据,
  7. *         每一个线程为数组添加3个数据即可。
  8.          */
  9.         public static void main(String[] args) {
  10.                         new X().start();
  11.                         new X().start();
  12.         }

  13. }
  14. class X extends Thread{
  15.         private static int[] arr = new int[6];          //不能省略
  16.         public void run(){
  17.                 int a=0;                                    //位置不能改变,在循环内自增后再次进入循环
  18.                 while(true){
  19.                         synchronized (X.class) {
  20.                                
  21.                                 if (a>=3) {                        //循环判断条件,
  22.                                         break;
  23.                                 }
  24.                                 try {
  25.                                         Thread.sleep(300);
  26.                                 } catch (InterruptedException e) {
  27.                                         // TODO Auto-generated catch block
  28.                                         e.printStackTrace();
  29.                                 }
  30.                                
  31.                                 Random r = new Random();
  32.                                 arr[a] = r.nextInt(10);
  33.                                                
  34.                                 System.out.println(getName()+"集合中加了"+arr[a]);
  35.                                 a++;                    //位置不能改变,
  36.                         }
  37.                 }
  38.         }

  39. }
复制代码







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