CountDownLatch 用于等待其它线程都处于就绪状态: #include <mutex> #include <condition_variable> class CountDownLatch { public: CountDownLatch(uint32_t count) : m_count ...
分类:
编程语言 时间:
2020-10-18 09:24:14
阅读次数:
22
Google:inline Forward Caffe 作者:jiongnima 这个作者很懒,什么都没留下… 原创 干货!caffe源码深入学习9:caffe框架神经网络反传代码解析(三)之contrastive_loss_layer源码解析 本篇博客是Caffe深度学习梯度反传代码解析的第3篇。 ...
分类:
其他好文 时间:
2020-10-07 21:44:58
阅读次数:
42
Golang 推荐通过 channel 进行通信和同步,但在实际开发中 sync 包用得也非常的多,在以太坊的源码中也有很多这类应用的体现。 Go sync包提供了:sync.Mutex,sync.RMutex,sync.Once,sync.Cond,sync.Waitgroup,sync.atom ...
分类:
编程语言 时间:
2020-07-30 01:44:32
阅读次数:
86
sync.Cond 是一个事件通知,类似于java中的conditional 或者 wait/notify 机制。 它有一个重要的作用是,协程之间通过锁进行协调的时候,其中一个协程等待的时候,可以释放锁和资源,并且能够及时完成准备工作。 比如经典的生产者消费,例如有一个队列,只有大小为1,生产者需要 ...
分类:
编程语言 时间:
2020-07-30 01:33:46
阅读次数:
89
当mysql开启binlog日志时,会存在一个内部XA的问题:事务在存储引擎层redo log的写入和binlog的写入一致性问题。 mysql通过两阶段提交很好的解决了redo log和binlog一致性问题: 第一阶段:innodb prepare, 持有prepare_commit_mutex ...
分类:
数据库 时间:
2020-07-17 01:14:06
阅读次数:
148
#include "1.h"#include "pthread.h"static pthread_mutex_t __guard_mutex;static pthread_once_t __once_control = PTHREAD_ONCE_INIT;static void makeRecusi ...
分类:
其他好文 时间:
2020-07-09 13:46:07
阅读次数:
86
一、recursive_mutex class MyClass { public: void Fun1() { // std::lock_guard<mutex> sguard(m_mutex); // 加锁处理共享内存 std::lock_guard<recursive_mutex> sguard ...
分类:
其他好文 时间:
2020-06-27 20:25:35
阅读次数:
70
一、单例设计模式共享数据例子 std::mutex myTutex; class UniqueElement { public: static UniqueElement* GetInstance() { if (m_instacne == nullptr) // 双重检测,提高程序运行效率 { s ...
分类:
其他好文 时间:
2020-06-26 14:56:15
阅读次数:
61
一、unique_lock 的第二个参数 (1)std::adopt_lockunique_lock对象在构造的时候,不执行mutex::lock()所以必须要把互斥量提前 lock(),该参数与 lock_guard 使用相同 m_mutex1.lock(); // 使用adopt_lock 之前 ...
分类:
其他好文 时间:
2020-06-25 19:20:00
阅读次数:
98
一、基本概念 1、互斥量(mutex) 互斥量:是个类对象(可以理解为一把锁),多个线程尝试用lock()成员函数来加锁这把锁,只有一个线程能锁定成功(成功的标志是lock()函数能够返回,返回不了说明没有锁成功) 2、死锁 死锁:一般是两个或两个以上的互斥量,在两个或多个地方上锁的顺序不一致导致的 ...
分类:
编程语言 时间:
2020-06-25 17:29:08
阅读次数:
69