| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 665 人关注过本帖
标题:这题目没有看明白!
只看楼主 加入收藏
yynn
Rank: 1
等 级:新手上路
帖 子:279
专家分:0
注 册:2005-11-4
收藏
 问题点数:0 回复次数:8 
这题目没有看明白!
write a program that shares an integer array between 2 separate thread. each thread is given a segment of the array to use and may not write outside its given segment. one of the thread should initializeits values to random number in the rang 1..100 and the other thread should toss a coin N times and record the result of each toss( n equals the segment sive ).the main program should wait for the threads to finish and print the values of the array前面是要两个线程吧数组分成两半,之后又要跑硬币,随即数了!
搜索更多相关主题的帖子: separate between outside thread number 
2007-10-16 05:57
Lovedandan
Rank: 1
等 级:新手上路
威 望:1
帖 子:56
专家分:2
注 册:2007-5-17
收藏
得分:0 
回复:(yynn)这题目没有看明白!

我想可能实这样的:
两个独立的线程共享一个整数数组,该数组分成两端,分别被两个线程访问。其中一个线程把自己的那一段的数据初始化为1到100的随机数,另一个线程抛硬币,记录数值,分别填入数组中,(其实就是把自己的那段数组数据初始化为0和1的随机数而已)。
个人理解


永远,唯一,巴黎
2007-10-16 09:09
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 
写一个程序使两个线程共享一个整数数组。每个线程都能使用该数组的一部分,但是不能写各自那部分以外的部分。其中一个线程用范围在1--100的随机数初始化它的那部分数据,另一个线程抛N次硬币并记录每次的结果来写它的那部分数据。主程序应该等待线程结束,并打印出数组的值。

I'm here, as always...
2007-10-16 09:50
yynn
Rank: 1
等 级:新手上路
帖 子:279
专家分:0
注 册:2005-11-4
收藏
得分:0 

class RandomNumber implements Runnable{
private int n[]=new n[50];
Random r = new Random();
int b = r.nextInt(100);
public void run(){
for(int j=0 ; j<100; j++){
System.out.println(""+n[]);
try{
sleep(100);
}catch(InterruptedException e){}
}
}

}

class Toss implements Runnable{
private int m[] = new m[50];
Random s = new Random();
int a = s.nextInt(2);
public void run(){
for(int j=0 ; j<100; j++){
System.out.println(""+n[j]);
try{
sleep(100);
}catch(InterruptedException e){}
}
}
}

class Q1 {
public static void main(String args[]){
Runnable c1 = new RandomNumber(50);
Runnable c2 = new Toss(50);
new Thread(c1).start();
new Thread(c2).start();
}
}


2007-10-18 01:52
yynn
Rank: 1
等 级:新手上路
帖 子:279
专家分:0
注 册:2005-11-4
收藏
得分:0 
我这样编写错误很多有没有人帮我修改一下啊!本事菜鸟,刚学,但是以上来就碰上thread估计有一堆奇怪的错误!请大师指点了!

2007-10-18 01:53
HK狼
Rank: 1
等 级:新手上路
威 望:1
帖 子:46
专家分:0
注 册:2007-9-9
收藏
得分:0 

你那样写是两个线程 但他们访问的是两个不同的 array

public class demo{
private int m[] = new m[50];
//定义 ,赋值。。。

new Thread(){ //线程1

public void run(){//实现}

}

}.start();
new Thread(){ //线程2

public void run(){//实现}

}

}.start();
}


2007-10-18 15:12
yynn
Rank: 1
等 级:新手上路
帖 子:279
专家分:0
注 册:2005-11-4
收藏
得分:0 

如果这样的话貌似不能访问了,是private私有的!


2007-10-18 17:26
Lovedandan
Rank: 1
等 级:新手上路
威 望:1
帖 子:56
专家分:2
注 册:2007-5-17
收藏
得分:0 
回复:(yynn)如果这样的话貌似不能访问了,是privat...
import java.util.Random;
public class Test{
public static void main(String[] args)throws Exception{
int[] a = new int[10];
T1 t1 = new T1(a,0,4);
T2 t2 = new T2(a,5,9);
Thread a1 = new Thread(t1);
Thread b1 = new Thread(t2);
a1.start();
b1.start();
Thread.sleep(1000);//---等到初始化完成,再打印
for(int i:a)
System.out.print(i+" ");
}
}
//------初始化为1到100的进程
class T1 implements Runnable{
private int[] a;
private int start;//进程能访问的数组的起始
private int end;
public T1(int[] a,int start ,int end){
this.a = a;
this.start = start;
this.end = end;
}
public void run(){
Random r = new Random();
for(int index = start;index <= end;index++){
a[index] = 1 + r.nextInt(100);
}
}
}
//----------抛硬币的线程
class T2 implements Runnable{
private int[] a;
private int start;
private int end;
public T2(int[] a,int start ,int end){
this.a = a;
this.start = start;
this.end = end;
}
public void run(){
Random r = new Random();
for(int index = start;index <= end;index++){
a[index] = r.nextInt(2);
}
}
}

永远,唯一,巴黎
2007-10-18 22:20
yynn
Rank: 1
等 级:新手上路
帖 子:279
专家分:0
注 册:2005-11-4
收藏
得分:0 
感觉题目理解是不是一个数组分一半,然后先初始化一半数组,然后跑硬币猜数组!

2007-10-19 00:55
快速回复:这题目没有看明白!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020554 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved