【发布时间】:2014-01-10 20:50:35
【问题描述】:
我正在处理线程,但是在使用线程之前,我要编写 2 个程序。
- 设置一个数组并编写一个顺序程序来访问整个数组并对内容执行一些简单的任务。
- 修改程序,使其仍然是顺序的,但通过对函数的一系列调用来访问数组。对该函数的每次调用都将处理数组的若干行,这些行由传递给该函数的参数定义。
我在理解这些问题时遇到了问题,看起来很简单,但我似乎无法理解它。在我开始创建一个允许处理在一个或多个线程中执行的程序之前,我将根据上述两个问题编写程序。每个线程都应该访问数组的一组不同的行。
对于第一个问题,我目前写的代码是
#include <iostream>
#include <stdio.h>
int main()
{
int array [20][20];
int i, j;
/* output each array element's value */
for ( i = 0; i < 20; i++ )
{
for ( j = 0; j < 20; j++ )
{
printf("a[%d][%d] = %d\n", i,j, array[i][j] );
}
}
system ("PAUSE");
return 0;
}
我想知道上面的程序是不是顺序程序?我已经运行了该程序,它访问了整个数组并执行了一项任务,即打印出数组中的所有数据。
我在网上研究了顺序程序是什么意思,我发现它的含义如下:在任务b之前执行任务a,但不是同时执行。是这样吗?
对于第二部分,我做了以下工作:
#include <iostream>
#include <stdio.h>
void print_array(int array[20][20]);
int main()
{
int array [20][20];
int i, j;
print_array(array);
system ("PAUSE");
return 0;
}
// Output data in an array
void print_array(int array)
{
int i, j;
for ( i = 0; i < 20; i++ )
{
for ( j = 0; j < 20; j++ )
{
printf("a[%d][%d] = %d\n", i,j, array[i][j] );
}
}
}
我的方向正确吗?因为我还必须编写一个版本的程序,允许在一个或多个线程中执行处理。
编辑:我要使用二维数组,抱歉上面不清楚
【问题讨论】:
标签: c++ c arrays multithreading sequential