1/* A simple example with 4 threads */
2
3#include <pthread.h>
4#include <unistd.h>
5
6double a[1000];
7
8static void init()
9{
10	int i;
11	for(i=0;i<1000;i++) a[i] = (double)i;
12}
13
14static void *th(void *v)
15{
16	double sum = 0.0;
17	int i,j;
18
19	for(j=0;j<1000;j++)
20		for(i=0;i<1000;i++)
21			sum += a[i];
22
23	*( (double*)v ) = sum;
24
25	/* make sure that no threads is so fast that it finishes
26         * before last thread is created, thus reusing the TID */
27	sleep(1);
28
29	return 0;
30}
31
32int main()
33{
34	pthread_t t[4];
35	double sum[4];
36	int i;
37
38	init();
39
40	for(i=0;i<4;i++)
41		pthread_create(&t[i], NULL, th, &sum[i]);
42
43	for(i=0;i<4;i++)
44		pthread_join(t[i], NULL);
45
46	return 0;
47}
48