首页 > 代码库 > 关于pthread_join函数在使用时如何不阻塞主线程的一种探索
关于pthread_join函数在使用时如何不阻塞主线程的一种探索
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); } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。