生成10000个随机数,用4个线程均分为4块怎么分啊?

解决方案 »

  1.   

    代码如下:import java.util.*;public class RandomGenMultiThread implements Runnable{
    private int randomNum;
    private long seed;
    private int num;

    public RandomGenMultiThread(int num){
    Date date = new Date();
    this.seed = date.getTime();
    this.num = num;
    } @Override
    public void run(){
    Random random = new Random(this.seed);
    for(int i=0;i < 25000;i++){
    this.randomNum = random.nextInt();
    System.out.println("random number "+this.randomNum+" from thread " + this.num);
    }
    }

    public static void main(String[] args){
    RandomGenMultiThread r1 = new RandomGenMultiThread(1);
    RandomGenMultiThread r2 = new RandomGenMultiThread(2);
    RandomGenMultiThread r3 = new RandomGenMultiThread(3);
    RandomGenMultiThread r4 = new RandomGenMultiThread(4);

    new Thread(r1).start();
    new Thread(r2).start();
    new Thread(r3).start();
    new Thread(r4).start();
    }
    }
      

  2.   

    public static void main(String[] args) {
    for (int i = 0; i < 4; i++) {
    Runnable task = new Runnable() {
    public void run() {
    for (int j = 0; j < 25000; j++) {
    System.out.println(new Random().nextInt(100000));
    }
    }
    };
    new Thread(task).start();
    }
    }
      

  3.   


    for (int i = 0; i <= 4; i++) {
    new Thread() {
    @Override
    public void run() {
    for (int j = 0; j < 25000; j++) {
    System.out.println(new Random().nextInt(100000));
    }
    }
    }.start();
    }
      

  4.   

    四个线程,每个生成2500个;或者起四个线程;同时put;当size》10000时结束线程
      

  5.   

    感觉run()方法这样写好些
    public void run(){
    synchronized(System.out){
    Random random = new Random(this.seed);
    for(int i=0;i < 25000;i++){
    this.randomNum = random.nextInt();
    System.out.println("random number "+this.randomNum+" from thread " + this.num);

    try {
    Thread.sleep(1000);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }

    }           
      

  6.   

    public static LinkedList<Integer> arrayList = new LinkedList<Integer>() ;
    public static int MaxSize = 100000 ; 
    public static synchronized void add(int i){
     if( arrayList.size() < MaxSize){
        arrayList.add(i) ;
    }
    }
    public static synchronized boolean isOk(){
    if(arrayList.size()>= MaxSize)
    return false;
    return true;
    }
    public static void main(String[] args) {
    for (int i = 0; i < 4; i++) {       
    new Thread() {           
    @Override          
    public void run() {    
    while(isOk()){ 
    add(new Random().nextInt(MaxSize)) ;
    }
    }     
    }.start();    }
    }