#include <pthread.h> #include <stdlib.h> #include <unistd.h> #include <stdio.h> int myglobal; void *thread_function ( void *arg ) { int i,j; for ( i = 0; i < 20; i++ ) { j = myglobal; j = j + 1; printf("."); fflush(stdout); sleep(2); myglobal = j; } return NULL; } int main ( void ) { pthread_t mythread; int i; if ( pthread_create(&mythread, NULL, thread_function, NULL) ) { printf("error creating thread.\n"); abort(); } for ( i = 0; i < 20; i++) { myglobal = myglobal + 1; printf("o"); fflush(stdout); sleep(1); } if ( pthread_join(mythread, NULL) ) { printf("error joining thread"); abort(); } printf("\nmyglobal equals %d", myglobal); exit(0); }