您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

pthread启动函数中的return()与pthread_exit()

pthread启动函数中的return()与pthread_exit()

(1)在C 代码中,using return导致 pthread_exit取消堆栈堆栈和销毁局部变量,而只能保证 调用注册的取消处理程序 pthread_cancel_push()。在某些系统上,此机制还将导致 调用C 局部变量的析构函数,但是对于可移植代码而言,这是不能保证的—查看平台文档。

此外,在main()return将隐式调用exit(),从而终止程序,而pthread_exit()只会终止线程,程序将继续运行,直到所有线程终止或某个线程调用exit()abort()或终止程序的另一功能

(2)使用return作品,因为POSIX规范是这样说的。返回的值存储在pthread_join()可以检索它的地方。在pthread_join()调用之前,不会回收线程使用的资源。

(3)我从不在原始POSIX线程中使用线程的返回值。但是,我倾向于使用更高级别的工具,例如Boost线程库,以及最近使用的C ++ 0x线程库,它们提供了在线程之间传递值(例如Future)的替代方法,从而避免了与内存管理相关的问题。暗示。

其他 2022/1/1 18:17:47 有663人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶