![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多进程与同步
C++程序员Carea
十年一线开发经验,热爱 C++ ,热爱编程
展开
-
让我们看看垃圾代码长什么样子(以及重构的思路)
下面的代码实现连接数据库的功能,但是用的是全局函数实现。 函数也就罢了,里面的变量又用到了全局变量来访问数据库,由于多线程调用,所以还要支持多线程。 多线程访问全局变量就要支持并发,加临界区(或者说Guard)。 访问数据库又有可能出错,出错又要退出,退出又要在流程上处理错误处理,临界区控制更麻烦。 只要哪里写的不完备,你懂的,多线程临界区出了问题,多个线程的调用全局变量,这些线程就会像一...原创 2020-01-21 11:15:09 · 1190 阅读 · 0 评论 -
多线程同步的开发
介绍 根据多线程同步原理中介绍的内容可知,多线程开发就是要让多个线程正确的访问临界资源,实现多线程同步。 所以,一般的同步策略最简单的就是:使用互斥体(mutex)来管理临界资源(与临界资源同时定义,生命期相同,作用域相同),互斥体提供P、V操作(获取,获取不到就等待;释放,唤醒等待的线程)。不同的线程使用锁(Guard)来自动调用(构造函数、析构函数)互斥体的P、V操作,从而实现同步。 互原创 2016-03-29 19:45:12 · 917 阅读 · 0 评论 -
多线程同步的原理
参考 多线程执行 进程在活动中会相互制约 所有进程都是相互独立的 进程之间以异步并发方式执行 同步 同步是进程共同完成一项任务时互相发生的关系 同步进程之间具有合作关系 执行的时候必须按照一定顺序协调进行 互斥 互斥是进程之间共同完成一项任务时,由于竞争同一种资源,发生的互相排斥的关系 互斥进程之间不具备时间次序的关系 临界资源 一次只允许一个进程原创 2016-03-12 22:19:26 · 1754 阅读 · 0 评论