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 · 75 阅读 · 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 · 232 阅读 · 0 评论 -
Linux多线程之线程终止
主动终止(终止自己) 调用 return (void*)var; 调用void pthread_exit(void *value_ptr), 其它线程可以调用 pthread_join 获得这个针。 注: 这两个函数返回值都为指针类型,在线程中使用时所指向的地址必须为:malloc分配的或者全局变量;因为当线程退出是 其作用域的变量都将消失。 这两个函数的返回值都能通过 int pthrea...原创 2020-02-17 12:44:15 · 417 阅读 · 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 · 191 阅读 · 0 评论