[练习]在一个数组中存300条记录,用3个线程统计求和。
来源:互联网 发布:灯光秀编程软件 编辑:程序博客网 时间:2024/05/17 05:14
class Test{
/*定义数组:
*1.成员整型数组array,容量300
*2.将array初始化方法封装在构造函数中
*3.对100个数求和的方法封装成arrayAdd,参数为数组array和N(创建进程时用)*/
class Array{
int[]array=new int[300];
Array(){
this.creatArray();
}
private void creatArray(){
for(int i=0;i<300;i++){
array[i]=i;
}
}
public int arrayAdd(int[] array,int N){
int sum=0;
this.array=array;
for(int i=N;i<N+100;i++){
sum+=array[i];
}
return sum;
}
}
/*进程类型
*引入数组指针a
*引入计数段点N
*在重写的方法run()中,调用Array中的累加方法
*注意:this必须写(刚开始我就没写,结果出现空指针错误)
*/
class Cal implements Runnable{
Array a;
int N;
Cal(Array a,int N){
this.a=a;
this.N=N;
}
public void run(){
System.out.println(a.arrayAdd(a.array, N));
}
}
/*主方法/线程main
*实例化数组类、线程类
*令N分别为0,100,300
*/
public static void main(String[] args) { Array a=new Array(); Cal c1=new Cal(a,0); Cal c2=new Cal(a,100); Cal c3=new Cal(a,200);new Thread(c1).start();new Thread(c2).start();
new Thread(c3).start();
}
}
第一次输出:
14950
4950
24950第二次输出:49501495024950结果分析:三个线程不是顺序运行的,由CPU随机分配执行。
1 0
- [练习]在一个数组中存300条记录,用3个线程统计求和。
- 在一个数组中保存10个数值,然后在数组中插入一个数,数组中的数仍然有序
- reduce在数组求和中第二个参数initialValue讨论
- 多条记录合并为一条统计求和
- 在一个线程中产生多个线程
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数。
- 统计一个数字在排序数组中出现的次数。
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数。
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数。
- 统计一个数字在排序数组中出现的次数
- 用vim打开c程序会出现乱码
- 搭建vagrant环境
- git配置远程访问
- Google In-app Billing 支付接入小结
- git@oschina使用学习--------阿冬专栏!!!
- [练习]在一个数组中存300条记录,用3个线程统计求和。
- 如何查看安卓手机应用程序创建的数据库
- runtime Method
- 监听键盘弹出/隐藏
- hibernate
- 算法之动态规划(DP)
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
- 状态模式使用实例
- 微信web开发者工具