关于pthread_join函数在使用时如何不阻塞主线程的一种探索
时间:2014-05-24 05:59:40
收藏:0
阅读:571
pthread_join 函数是会阻塞主线程的,这会让很多java程序员不适应。因为在java中 start以后一个线程就执行执行了。主线程不会被阻塞。
而在linux中 join是会阻塞的。
那么如何使用join的时候 不阻塞主线程呢。我给出了一个解决方法。
#include <stdio.h> #include <pthread.h> void *print_count(int c); void thread_start(); int main(int argc, char const *argv[]) { pthread_t t1; pthread_create(&t1,NULL,thread_start,NULL); printf("start main\n"); sleep(3); printf("done main\n"); return 0; } void thread_start() { pthread_t t1; pthread_create(&t1,NULL,print_count,3); pthread_join(t1,NULL); } void *print_count(int c) { int i; for (i = 0; i < c; ++i) { /* code */ printf("i == %d\n", i); } }
评论(0)