![](https://img-blog.csdnimg.cn/20200623151946220.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux多线程编程
Linux多线程编程
Mark_404
自由、博爱、专一
展开
-
线程与进程的比较
进程线程fork()pthread_create()return、 exit() 、_exit()return 、pthread_exit()wait()pthread_join()atexit()pthread_cleanup_push()、pthread_cleanup_pop()原创 2020-02-17 13:35:00 · 73 阅读 · 0 评论 -
Linux多线程之线程控制与清理
问题有时候希望线程退出时能够自动的执行某些函数,为了能达到此目的,OS 提供了两个函数帮我们完成这个功能void pthread_cleanup_push(void (*rtn)(void*), void *arg);void pthread_cleanup_pop(int execute);这两个函数是成对使用的,缺一不可。rtn: 清理函数指针,返回类型为 void 参数类型为...原创 2020-02-17 13:30:18 · 226 阅读 · 0 评论 -
Linux多线程之线程终止
主动终止(终止自己)调用 return (void*)var;调用void pthread_exit(void *value_ptr), 其它线程可以调用 pthread_join 获得这个针。注:这两个函数返回值都为指针类型,在线程中使用时所指向的地址必须为:malloc分配的或者全局变量;因为当线程退出是 其作用域的变量都将消失。这两个函数的返回值都能通过 int pthrea...原创 2020-02-17 12:44:15 · 412 阅读 · 0 评论 -
Linux多线程之线程创建
1. 函数#include <pthread.h>int pthread_create(pthread_t *restrict thread,const pthread_attr_t *restrict attr,void *(*start_routine)(void*), void *restrict arg);参数:thread 为线程id的容器, 通过类型可知为...原创 2020-02-17 12:25:22 · 187 阅读 · 0 评论