OSDN Git Service

Fix no pic
[uclinux-h8/uClinux-dist.git] / user / threaddemos / thdm.c
1 #include <stdio.h>
2 #include <unistd.h>
3 #include <pthread.h>
4
5 #define THREADS 4
6 #define LOOPTIME 1
7
8 pthread_t t[THREADS];
9 int cnt[THREADS];
10 int loop;
11
12 void* thread_code(void* arg) {
13   int idx = (int)arg;
14   while(loop) {
15     cnt[idx]++;
16     sched_yield();
17   };
18   pthread_exit(0);
19   return 0;
20 };
21
22 int main(int argc, char* argv[]) {
23   int i;
24 #ifdef FSUTHREADS
25   pthread_init();
26 #endif
27
28   for(i=0;i<THREADS;i++) cnt[i]=0;
29
30   loop=1;
31   for(i=0;i<THREADS;i++) pthread_create(&t[i],0,thread_code,(void*)i);
32
33   for(i=0;i<LOOPTIME;i++) sleep(1);
34
35   loop=0;
36   for(i=0;i<THREADS;i++) pthread_join(t[i],0);
37
38   for(i=0;i<THREADS;i++) printf("thread %i runs: %i\n",i,cnt[i]/LOOPTIME);
39
40   return 0;
41 };