并行编程实践
目录
一、实验要求
- 并行Hello World输出
- 并行数组相加
二、实验内容及步骤
本实验在使用IntelliJ IDEA软件内进行。
任务一:并行输出Hello World
代码设计:
- 代码设计ParallelHellworld.java文件,然后开始编写代码
- 使用了一个for循环来创建了10个线程,每个线程都输出"Hello, World i!",其中i从1到10。
- 每个线程都执行HelloWorldPrinter类的run方法,输出不同的编号。当运行这个程序时,会看到10个线程并行地输出"Hello, World i!"。
运行结果:(3次):
任务二:并行数组相加
代码设计:
- 在这个程序中,首先定义了两个数组array1和array2,然后创建了一个新的数组result来存储相加的结果。
- 使用一个for循环创建了与数组长度相同数量的线程,每个线程负责对应位置的元素相加,并将结果存储在result数组中。
- 等待所有线程执行完毧,然后输出最终的结果数组
运行结果:
三、心得总结
本次实验是关于并行编程的实验,主要涉及到了并行Hello World输出和并行数组相加两个部分。在这个过程中,我学习了如何使用Java中的多线程机制来实现并行计算,以及如何协调多个线程之间的执行。
在实验过程中,我遇到了一些问题。
首先,由于初次使用JAVA进行并行程序编写,在IJ环境配置的时候遇到很大问题,程序运行报错:找不到或无法加载主类 Main 。最后在上网搜索更改项目创建方式解决了这个问题。
其次,在编写并行Hello World程序的时候,我发现程序的输出结果并不是按照线程启动的顺序来输出的。这是因为线程的启动和执行是异步的,具体的执行顺序是由操作系统的调度算法决定的。
在完成这个实验后,我获得了以下收获:
1.了解了并行编程的基本概念和原理,学会了如何使用Java中的多线程机制来实现并行计算。
2.学会了如何将一个大任务分成多个小任务,让多个线程并行地处理,从而提高计算效率。
3.最后我了解到通过合理地设计并行算法和进行并行编程,可以充分发挥多核处理机的计算能力,提高处理机的计算效率。
总之,这个实验让我更深入地了解了并行编程的原理和实现方式。