首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    嵌入式Linux:线程的创建、终止、回收、取消和分离

    创建线程后,主线程调用 pthread_join() 等待新线程完成执行。如果不使用 pthread_join(),主线程不会等待新线程结束,这可能导致程序提前退出。...pthread_join() 是用于 等待指定线程终止并回收其资源 的函数,它会阻塞调用线程直到目标线程终止。 如果线程已经终止,pthread_join() 将立即返回。...,pthread_join() 将等待这个线程终止。...在多线程程序中,任何线程都可以调用 pthread_join() 来等待另一个线程的结束。即使是非创建该线程的线程,也可以调用 pthread_join() 来等待它的终止。...无法通过 pthread_join() 获取线程的返回值或等待线程终止。 pthread_join(): 主动调用 pthread_join() 等待指定线程终止并回收资源。

    1.1K10

    【CC++多线程编程之四】终止pthread线程

    如一个线程调用 pthread_join等待还有一个线程终止。以下介绍等待线程终止函数pthread_join。...2.等待线程终止:pthread_join() 该返回值ret通过还有一个函数pthread_join传递。...等待线程终止pthread_join原型为: 等待线程终止pthread_join会堵塞调用线程,直到其指定的线程终止。pthread_join通过第一个參数:线程ID来指定线程。...调用者调用pthread_jion等待一个特定线程终止,在这样的情况下,调用者可能须要这个特定线程的返回值,pthread_join通过将value_ptr的地址赋值给特定线程的pthread_exit...3.pthread_exi与pthread_join牛刀小试: 上面的样例主线程main调用pthread_join等待子线程My_thread线程终止,通过传递My_thread_ret地址获取子线程

    1.8K20

    【Linux】深入理解线程控制

    一、线程等待的原理 pthread_join的作用是线程等待,其中retval参数传递线程退出状态的原理是:当目标线程结束时,pthread_join 会将目标线程的退出状态(即线程函数的返回值或 pthread_exit...传递的参数)存储在 *retval 所指向的内存位置,也就是说,pthread_join 会修改 retval 所指向的那个 void * 类型变量的值 #include #include...0; } 这给我们证明了,新线程的输出型参数是可以被主线程取到的,并且全局变量是可以被所有线程访问的,是共享资源,所以全局函数也是可以被所有线程访问的 &ret接受退出状态的具体过程: 当调用 pthread_join...时,pthread_join 会阻塞当前线程,直到由 thread 参数指定的目标线程终止,一旦目标线程终止,pthread_join 会将该线程调用 pthread_exit 时传递的 void*...指针(即退出状态)赋值给 &ret 所指向的 void* 变量,即ret,pthread_join 成功完成等待和状态获取后,会返回 0,表示操作成功,当前线程可以继续执行后续代码 二、线程的局部存储

    20910

    Linux下多线程的实现(基于pthread库)

    等待线程结束 pthread_join()函数用于等待线程结束,回收资源。类似于进程等待还是waitpid。...pthread_join只能适用于非分离的线程,因此如果没有必要等待线程终止,则应该将该线程分离。如果线程已经处于分离状态,那么调用失败。...pthread_exit在退出线程以后并不会释放资源,而是需要pthread_join函数来释放。当主线程调用这个pthread_exit函数仅仅只是终止主线程,其他线程仍将继续存在。...函数原型:void pthread_exit(void *retval) 参数retval可以通过pthread_join()来访问到这个指针。...下面这个例子是对上面的这个例子一点小小的变化,可以通过pthread_join()来获取pthread_exit()的返回值。

    4.7K20
    领券