Linux c/c++ 多线程
Linux c/c++ 多线程
洪流之源
这个作者很懒,什么都没留下…
展开
-
linux线程系列(0)线程的概念、线程和进程的关系
1、进程是资源管理的最小单位,线程是程序执行的最小单位。每个进程有自己的数据段、代码段和堆栈段。 线程通常叫做轻型的进程, 它包含独立的栈和CPU寄存器状态, 线程是进程的一条执行路径 , 每个线程共享其所附属进程的所有资源,包括打开的文件、内存页面、信号标识及动态分配的内存等。因为线程和进程比起来很小,所以相对来说,线程花费更少的CPU资源。在操作系统设计上,从进程演化出线程,最主要的目的就是更原创 2017-05-31 21:15:48 · 286 阅读 · 0 评论 -
linux线程系列(2)linux线程分类
线程按照其调度者可分为用户级线程和内核级线程两种a)用户级线程:主要解决的是上下文切换的问题,其调度过程由用户决定;b)内核级线程:由内核调度机制实现。 现在大多数操作系统都采用用户级线程和内核级线程并存的方法。用户级线程要绑定内核级线程运行,一个进程中的内核级线程会分配到固定的时间片,用户级线程分配的时间片以内核级线程为准。默认情况下用户级线程和内核级线程是一对一,也可原创 2017-06-01 08:31:24 · 877 阅读 · 0 评论 -
linux线程系列(3)线程创建
线程创建函数如下:#include int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void*), void *restrict arg);返回: 成功返回0,否则返回错误编号参数tidp:线程标识符指针attr:线程原创 2017-06-01 08:45:24 · 444 阅读 · 0 评论 -
linux线程系列(4)线程终止
一、主动终止线程的执行函数中调用return语句调用pthread_exit()二、被动终止1、线程可以被同一进程的其他线程取消,其它线程调用pthread_cancel(pthid)。2、线程终止的3种方式#includeint pthread_cancel(pthread_t tid);void pthread_exit(void *retval);i原创 2017-06-01 11:23:06 · 1404 阅读 · 1 评论 -
linux线程系列(5)线程清理和控制函数
线程清理函数有两个push和pop函数:#include void pthread_cleanup_push(void (*rtn)(void *), void* arg);void pthread_cleanup_pop(int execute);返回: 成功返回0,否则返回错误编号参数rtn:清理函数指针arg:调用清理函数传递的参数execute:值1时执行线程清理函数原创 2017-06-02 20:01:39 · 623 阅读 · 1 评论 -
linux线程系列(6)线程与进程的比较
进程 线程创建 fork pthread_create()终止 return/exit()/_exit() return/pthread_exit()/pthread_cancel()等待原创 2017-06-02 20:16:32 · 247 阅读 · 0 评论 -
linux线程系列(7)线程的属性
1.线程属性初始化和销毁初始化和销毁函数:#include int pthread_attr_init(pthread_attr_t *attr)int pthread_attr_destroy(pthread_attr_t *attr)返回:成功返回0,否则返回错误编号线程属性结构体:typedef struct{ int原创 2017-06-03 08:52:02 · 372 阅读 · 0 评论