#include #include pthread_mutex_t mymutex; void *body(void *arg) { int i,j; pthread_mutex_lock(&mymutex); for (j=0; j<40; j++) { for (i=0; i<1000000; i++); printf("%c",*(char *)arg); } pthread_mutex_unlock(&mymutex); return NULL; } int main() { pthread_t t1,t2,t3; int err; pthread_mutexattr_t mymutexattr; pthread_attr_t myattr; pthread_mutexattr_init(&mymutexattr); pthread_mutex_init(&mymutex, &mymutexattr); pthread_mutexattr_destroy(&mymutexattr); pthread_attr_init(&myattr); err = pthread_create(&t1, &myattr, body, (void *)"."); err = pthread_create(&t2, &myattr, body, (void *)"#"); err = pthread_create(&t3, &myattr, body, (void *)"o"); pthread_attr_destroy(&myattr); pthread_join(t1, NULL); pthread_join(t2, NULL); pthread_join(t3, NULL); printf("\n"); return 0; }