diff options
Diffstat (limited to 'c,cc/thread_test.c')
-rw-r--r-- | c,cc/thread_test.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/c,cc/thread_test.c b/c,cc/thread_test.c new file mode 100644 index 0000000..e1ba9f3 --- /dev/null +++ b/c,cc/thread_test.c @@ -0,0 +1,43 @@ +#include <stdio.h> +#include <pthread.h> +#include <stdlib.h> + + +void saying_pthread_name(void* ptr); +int value=1; + +int +main(void) +{ + pthread_t wthread, bthread, rthread; + char* wname = "white"; + char* bname = "black"; + char* rname = "red"; + pthread_attr_t* pthread_attr_default = NULL; + + pthread_create(&wthread, pthread_attr_default, + (void*)&saying_pthread_name, (void*) wname); + + pthread_create(&bthread, pthread_attr_default, + (void*)&saying_pthread_name, (void*) bname); + + pthread_create(&rthread, pthread_attr_default, + (void*)&saying_pthread_name, (void*) rname); + + pthread_join(wthread,NULL); + //printf("%d\n", value); + pthread_join(rthread,NULL); + pthread_join(bthread,NULL); + + exit(0); +} + +void +saying_pthread_name(void* ptr) +{ + char* message; + message = (char*)ptr; + printf("I am a %s pthread and the value is %d \n", message, value); + value = value+1; +} + |