Below is a sample multithreading program based on C language.
[sourcecode language=’cpp’]
# include
…
/* parameter that will be passed to each matrix */
struct v{
…
};
/* function that will be executed in each thread */
void *runonThread(void *param){
struct v* data = (struct v*) param;
/* put your application here */
pthread_exit(0);
}
int main()
{
pthread_t pid[NUMTHREADS];
pthread_attr_t attr;
…
/* get the default attributes */
pthread_attr_init(&attr);
for(i=0; i… = … ;
/*passing ‘data’ as parameter to each thread*/
pthread_create(&pid[i], &attr,
runonThread, data);
}
/*waiting for the threads to complete */
for(i=0; i<NUMTHREADS; i++)
pthread_join(pid[i], NULL);
return 0;
}
[/sourcecode]
You may download a sample application to count matrix multiplication that uses multithreads, Matrix_Mul.zip