#include #include struct shared { int x; double y; }; void * thread1(void * s) { struct shared * data; data = (struct shared *)s; while (data->x < 8000) { printf("thread1: "); printf(" x == %d\n",data->x); fflush(stdout); data->x = data->x + 1; } }// thread1 void * thread2(void * s) { struct shared * data; data = (struct shared *)s; while (data->x < 8000) { printf("thread2: "); printf("x == %d\n",data->x); fflush(stdout); data->x = data->x + 1; } }// thread2 int main() { pthread_t tid1, tid2; struct shared s; s.x = 0; s.y = 3.14; pthread_create(&tid1,NULL,thread1,&s); pthread_create(&tid2,NULL,thread2,&s); pthread_join(tid1,NULL); pthread_join(tid2,NULL); printf("main thread: terminating\n"); exit(0); }// main