随笔分类 -  Linux下多线程编程

多线程之同步异步
摘要:1. 线程异步 线程在创建的之后,一般都是独立自主,并发的,线程间会进行资源的竞争,那么就会引来一个问题,如果多个线程在同一时间对同一资源进行访问,修改,会造成资源破坏的结果,如下例子: #include <stdio.h> #include <pthread.h> #include <unistd 阅读全文
posted @ 2021-04-21 15:13 阿明明 阅读(493) 评论(0) 推荐(0) 编辑
多线程之清理线程
摘要:我们最希望的就是线程在退出的时候释放其所占的所有资源,并且释放其设置的一些类似锁的资源,这就要求我们在退出线程的时候必须有收尾的操作,即线程退出时的清理 1. 清理函数 1) void pthread_cleanup_push(void (*routine) (void*), void *arg) 阅读全文
posted @ 2021-04-20 14:24 阿明明 阅读(480) 评论(0) 推荐(0) 编辑
多线程之线程结束
摘要:1. 多线程退出的方式如下: 线程调用pthread.exit() 线程调用return 线程所属进程结束 线程被其它线程通知结束或者结束 前两种方式也称为线程的主动结束,是理想状况,但是需要注意一点,线程结束(非分离状态),资源却没有释放,需要调用pthread_join() 后两种称为被动结束, 阅读全文
posted @ 2021-04-19 16:43 阿明明 阅读(535) 评论(0) 推荐(0) 编辑
多线程之线程属性
摘要:1. 线程属性: 线程属性主要包含分离状态,作用域,栈尺寸,栈地址,优先级,调度策略和参数,本节主要介绍栈尺寸和分离状态 线程属性通过pthread_attr_t进行表达,定义如下: union pthread_attr_t { char _size_[__SIZEOF_PTHREAD_ATTR_T 阅读全文
posted @ 2021-04-09 13:32 阿明明 阅读(630) 评论(0) 推荐(0) 编辑
多线程之创建线程
摘要:1. 函数声明: int pthread_create(pthread_t *pid, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg) pid:线程创建成功后返回的线程标示 attr:线程属性结构,用于控制 阅读全文
posted @ 2021-04-08 16:24 阿明明 阅读(89) 评论(0) 推荐(0) 编辑
多线程的基本概念
摘要:1. 多线程的好处: 让软件拥有灵敏的响应 充分利用多核处理器 开销比进程小很多很多 2. 线程与进程间关系: 线程属于进程 同一进程产生的线程共享同一内存空间 进程退出,线程全部强制退出 3. 线程的状态: 就绪态:等待处理器调用,一般在线程创建之后,会现处于该状态 运行态:处理器处理中 阻塞态: 阅读全文
posted @ 2021-04-08 14:25 阿明明 阅读(58) 评论(0) 推荐(0) 编辑