安全指针

经过测试:

Windows x86_64(MSVS 2013和2015)
  Linux x86_64(g ++ 6.3.0和clang 3.8.0)
  此代码在在线编译器中:http : //coliru.stacked-crooked.com/a/a97a84ff26c6e9ee

将safe_ptr <>与rw-lock一起使用。

要将安全指针与rw-lock而不是unique-lock一起使用,只需 #include <safe_ptr.h> 编写so shared_mutex_safe_ptr<std::map<int,int>>而不是即可 safe_ptr<std::map<int,int>>。或者更好地编写contfree_safe_ptr<std::map<int,int>> ptr;使用更快的共享互斥量的方法,我们将在第二篇文章中对其进行描述。然后,使用 slock_safe_ptr(ptr)->find(5);或auto const& ptr_read = ptr; ptr_read->find(5); 称为只读共享锁-我们将在第三篇文章中介绍这些方式。

其他背景

可组合性和僵局。

由于我们在上文中将锁用于线程安全,因此我们的算法称为基于锁。

在无锁容器中没有死锁,基于事务性内存的算法方面是否真的还不错,并且现代RDBMS中是否存在死锁:MSSQL(基于锁的IL)和Oracle(多版本并发控制)?

无锁算法不允许一次原子地更改多个容器。RDBMS的死锁问题与基于锁的算法相同,它们通常通过锁超时或锁图来解决。并且C ++标准中新的事务安全部分不允许您安全使用复杂算法,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值