急!!!java多线程

lin243646327 2013-03-25 09:07:57
生成10000个随机数,用4个线程均分为4块怎么分啊?
...全文
387 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
zj304292653 2013-03-26
  • 打赏
  • 举报
回复
一个线程生成2500个不就行了么
lin243646327 2013-03-26
  • 打赏
  • 举报
回复
谢谢各位了。。
-AJ- 2013-03-26
  • 打赏
  • 举报
回复
原来分成4块,是这个意思啊
STEEL-CHINA 2013-03-26
  • 打赏
  • 举报
回复
高手自在CSDN。
xianwangkai 2013-03-26
  • 打赏
  • 举报
回复
12楼写的很精辟,学习了!
引用 11 楼 yanxing2012 的回复:
引用 3 楼 huangxiaofei 的回复:代码如下: Java code?12345678910111213141516171819202122232425262728293031323334import java.util.*; public class RandomGenMultiThread implements Runnable{ private i……
huangxiaofei 2013-03-26
  • 打赏
  • 举报
回复
嗯对!我写的那个没有考虑到同步的问题,楼上两个的写法都比我那个线程更加安全
huage 2013-03-26
  • 打赏
  • 举报
回复
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();   

		}
	}
yanxing2012 2013-03-26
  • 打赏
  • 举报
回复
引用 3 楼 huangxiaofei 的回复:
代码如下: Java code?12345678910111213141516171819202122232425262728293031323334import java.util.*; public class RandomGenMultiThread implements Runnable{ private int randomNum; private……
感觉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();
			}
		}
		
	}           
ro_nice 2013-03-26
  • 打赏
  • 举报
回复
少主无翼 2013-03-26
  • 打赏
  • 举报
回复
顶9楼
Liangxiaotang 2013-03-26
  • 打赏
  • 举报
回复
四个线程,每个生成2500个;或者起四个线程;同时put;当size》10000时结束线程
lee1473336489 2013-03-26
  • 打赏
  • 举报
回复

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();
		}
onlyyou67 2013-03-26
  • 打赏
  • 举报
回复
顶3楼!!!!!!!!
gu390154333 2013-03-26
  • 打赏
  • 举报
回复
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();
		}
	}
赏金--猎人 2013-03-26
  • 打赏
  • 举报
回复
3楼正解!
huangxiaofei 2013-03-26
  • 打赏
  • 举报
回复
代码如下:

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();
	}
}
zoeg 2013-03-25
  • 打赏
  • 举报
回复
怎么还带强制要用几个线程的算法。。。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧