黑马程序员技术交流社区

标题: 声明一个共享数组,起两个线程,两个线程分别隔一段时间(... [打印本页]

作者: Sing_Ls    时间: 2014-11-25 15:53
标题: 声明一个共享数组,起两个线程,两个线程分别隔一段时间(...
求大家给个思路,给传代码,谢谢大家啦!
作者: Sing_Ls    时间: 2014-11-28 10:50
这样久,都没人理我,算了,我把答案给我自己吧
作者: Sing_Ls    时间: 2014-11-28 10:51
  1. package com.itheima;

  2. import java.util.Random;



  3. public class Test2 {

  4.         /**
  5.          * 创建类,实现Runable接口,实现run方法
  6.          * @param args
  7.          */
  8.         public static void main(String[] args){
  9.                 //开启两个线程,向数组中添加数据
  10.                
  11.                 Thread thread1 = new Thread(new Demo(),"thread1");
  12.                 Thread thread2 = new Thread(new Demo(),"thread2");
  13.                
  14.                 thread1.start();
  15.                 thread2.start();
  16.         }
  17.        
  18.        
  19.         public static class Demo implements Runnable{
  20.                 //共享数组
  21.                  String[] datas = new String[6];
  22.                
  23.                 //添 加数据个数
  24.                  int position = 0;
  25.                

  26.                
  27.                 public void run(){
  28.                         //没一个线程添加数据的个数,计数器
  29.                         int count = 1;
  30.                         Random random = new Random();
  31.                        
  32.                         //没一个线程只添加3个数据
  33.                         while(count<=3){
  34.                                 try{
  35.                                         //通过sleep实现随机时间添加
  36.                                         Thread .sleep(random.nextInt(2000));
  37.                                        
  38.                                         //实现代码同步
  39.                                         synchronized(datas){
  40.                                                 //添加数据
  41.                                                 datas[position] = Thread.currentThread().getName()+"."+count;
  42.                                                 System.out.println("线程"+Thread.currentThread().getName()+"添加数据:"+count);
  43.                                                 count++;
  44.                                                 position++;
  45.                                         }
  46.                                 }catch (Exception e){
  47.                                         e.printStackTrace();
  48.                                 }
  49.                         }
  50.                 }
  51.         }
  52.        

  53. }
复制代码

作者: scoto263    时间: 2014-11-28 10:58
Sing_Ls 发表于 2014-11-28 10:51

大神,直接进黑马吧。不用考试了。。
作者: Sing_Ls    时间: 2014-12-9 22:00
哪有大神直说啊,直接垃圾了




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