/***************************************************
*--------------------------------------------------
* Creat : 2001. 04. 10 (programed by Cori-Young )
* Site: http://www.byoneself.co.kr
* Update :
*--------------------------------------------------
* Compile : cc -o xxx xxx.c -lpthread -lrt
*--------------------------------------------------
* Machine hardware: sun4u
* OS version: 5.7
* Processor type: sparc
* Hardware: SUNW,Ultra-60
***************************************************/
#include <pthread.h>
#include <stdio.h>
void* compute_thread(void*);
pthread_mutex_t my_sync;
pthread_cond_t rx;
int thread_done = FALSE;
main()
{
pthread_t tid;
pthread_attr_t attr;
char hello[] {"Hello, "};
char thread[] {"thread"};
pthread_attr_init(&attr);
pthread_mutex_init(&my_sync,NULL);
pthread_cond_init(&rx,NULL);
pthread_create(&tid, &attr, compute_thread, hello);
/* wait until the thread does its work */
pthread_mutex_lock(&my_sync);
while (!thread_done)
pthread_cond_wait(&rx,&my_sync);
/* When we get here, the thread has been executed */
printf(thread);
printf("n");
pthread_mutex_unlock(&my_sync);
exit(0);
}
void* compute_thread(void* dummy)
{
pthread_mutex_lock(&my_sync);
printf(dummy);
thread_done = TRUE;
pthread_cond_signal(&rx);
pthread_mutex_unlock(&my_sync);
return;
} |
|