由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - C++怎么保证2行代码atomic
相关主题
Volatile variables do not provide any atomicity (转载)很多东东要是我来设计,会很不一样
C++主要是破坏力大NFLX架构不是已经很稳定了 怎么还那么花钱programming
最expressive的三大语言[合集] Google C++ Coding Standard
请教register请推荐讲算法和数据结构的好书!
问问学计算机的同学、家长们,现在还有人学PASCAL吗 (转载)一般thread-safe access
Question on synchronization between processes问个java String问题
java的同步问题请教基础不行,怎么办
有人知道AtomicInteger是如何实现的么构建一个快速查询字典(数据结构题)?
相关话题的讨论汇总
话题: c++话题: atomic话题: 同时话题: 失败话题: 代码
进入Programming版参与讨论
1 (共1页)
m**********j
发帖数: 610
1
不一定是对同一个object写
比如说2个vector,V1.push_back(1)和V2.push_back(2)先后执行,2个push_back要么
同时成功要么同时失败,这个怎么实现?
w***g
发帖数: 5958
2
写了半天,决定不毒害你了。自己看wiki。
https://en.wikipedia.org/wiki/Transaction_processing
发明这个的人得了图灵奖。这问题要是你自己提出来的,那很了不起。

【在 m**********j 的大作中提到】
: 不一定是对同一个object写
: 比如说2个vector,V1.push_back(1)和V2.push_back(2)先后执行,2个push_back要么
: 同时成功要么同时失败,这个怎么实现?

m**********j
发帖数: 610
3

汗,我是菜鸟,只是刷题的时候想到的
有的题需要同时maintain 2个数据结构,万一更新完其中一个,另外一个更新失败了,
所有后续操作就全乱了
好像所有rollback都是讲数据库的啊,有普通数据结构的rollback吗

【在 w***g 的大作中提到】
: 写了半天,决定不毒害你了。自己看wiki。
: https://en.wikipedia.org/wiki/Transaction_processing
: 发明这个的人得了图灵奖。这问题要是你自己提出来的,那很了不起。

f*******t
发帖数: 7549
4
database里一般来说做完最后一步后commit,比较常见的是用MVCC
https://en.wikipedia.org/wiki/Multiversion_concurrency_control ),
transaction没commit之前,其它thread或client不会看到被更改的部分。
m**********j
发帖数: 610
5

如果不是数据库,只是普通的几行代码,要么都执行要么都不执行,有办法吗

【在 f*******t 的大作中提到】
: database里一般来说做完最后一步后commit,比较常见的是用MVCC
: https://en.wikipedia.org/wiki/Multiversion_concurrency_control ),
: transaction没commit之前,其它thread或client不会看到被更改的部分。

f*******t
发帖数: 7549
6
lock呗

【在 m**********j 的大作中提到】
:
: 如果不是数据库,只是普通的几行代码,要么都执行要么都不执行,有办法吗

n******t
发帖数: 4406
7
這就是當前計算機教學的杯具,學了一大堆名詞。
結果就是,一件事情,自己都沒想清楚要幹什麼,先用一堆自己都沒搞清楚的名詞,
把自己搞糊塗。

【在 m**********j 的大作中提到】
: 不一定是对同一个object写
: 比如说2个vector,V1.push_back(1)和V2.push_back(2)先后执行,2个push_back要么
: 同时成功要么同时失败,这个怎么实现?

m**********j
发帖数: 610
8

大牛,说得通俗易懂一点吧,真心求教
比如说leetcode的min stack,不是要同时维护2个stack吗,刚操作完其中一个,第2个
由于各种原因没执行成功,后面所有结果不就都是错的吗,那只有undo第一个,就是问
有没有一个general的方法实现这个

【在 n******t 的大作中提到】
: 這就是當前計算機教學的杯具,學了一大堆名詞。
: 結果就是,一件事情,自己都沒想清楚要幹什麼,先用一堆自己都沒搞清楚的名詞,
: 把自己搞糊塗。

t*****n
发帖数: 2578
9
general办法就是搞个lock。先锁,然后修改几个数据结构,然后解锁。
这不是基本用法么?java里的synchronized block
w**z
发帖数: 8232
10
https://en.wikipedia.org/wiki/Software_transactional_memory

【在 t*****n 的大作中提到】
: general办法就是搞个lock。先锁,然后修改几个数据结构,然后解锁。
: 这不是基本用法么?java里的synchronized block

相关主题
Question on synchronization between processes很多东东要是我来设计,会很不一样
java的同步问题请教NFLX架构不是已经很稳定了 怎么还那么花钱programming
有人知道AtomicInteger是如何实现的么[合集] Google C++ Coding Standard
进入Programming版参与讨论
t*****n
发帖数: 2578
11
太长,懒得看。总结一下吧

【在 w**z 的大作中提到】
: https://en.wikipedia.org/wiki/Software_transactional_memory
l**********0
发帖数: 150
12
自定义stack,让push返回boolean
synchronize{
if(myStack1.push(a)){
if(!myStack2.push(b)){
myStack1.pop();
}
}
}
g****y
发帖数: 2810
13
内存操作失败,这是bug必须改,8成是野指针,2成是内存没释放。

【在 m**********j 的大作中提到】
:
: 大牛,说得通俗易懂一点吧,真心求教
: 比如说leetcode的min stack,不是要同时维护2个stack吗,刚操作完其中一个,第2个
: 由于各种原因没执行成功,后面所有结果不就都是错的吗,那只有undo第一个,就是问
: 有没有一个general的方法实现这个

g****t
发帖数: 31659
14
作为逻辑学家,我觉得只要想办法让这两个指令都同时失败,
那么就满足了他说的:同时成功 OR 同时失败
所以当编译器看到第一条命令的时候,
把电源关了就可以了。这就达到了同时失败的目的。

【在 w***g 的大作中提到】
: 写了半天,决定不毒害你了。自己看wiki。
: https://en.wikipedia.org/wiki/Transaction_processing
: 发明这个的人得了图灵奖。这问题要是你自己提出来的,那很了不起。

g****t
发帖数: 31659
15
第一个数据结构可能更新失败,你要解决这个问题,对吗?
其实这个问题是严格情况下无解的。因为你这个先后什么的自己有矛盾。
但是可以想办法减少损失。例如你开100个线程,把
第一个操作更新100 次,用成功的那次,这就减少了失败的可能。
不用锁内存什么的

【在 m**********j 的大作中提到】
:
: 大牛,说得通俗易懂一点吧,真心求教
: 比如说leetcode的min stack,不是要同时维护2个stack吗,刚操作完其中一个,第2个
: 由于各种原因没执行成功,后面所有结果不就都是错的吗,那只有undo第一个,就是问
: 有没有一个general的方法实现这个

g*********e
发帖数: 14401
16
2 phase commit
g****t
发帖数: 31659
17
我写过用在海量设备上的atomic read什么的C代码。
如果是硬件相关的这类问题,能不搞高能技术
尽量不要搞,那个不是一般人玩的。

【在 g****t 的大作中提到】
: 第一个数据结构可能更新失败,你要解决这个问题,对吗?
: 其实这个问题是严格情况下无解的。因为你这个先后什么的自己有矛盾。
: 但是可以想办法减少损失。例如你开100个线程,把
: 第一个操作更新100 次,用成功的那次,这就减少了失败的可能。
: 不用锁内存什么的

1 (共1页)
进入Programming版参与讨论
相关主题
构建一个快速查询字典(数据结构题)?问问学计算机的同学、家长们,现在还有人学PASCAL吗 (转载)
[合集] 关于C++ STL的list的一个问题Question on synchronization between processes
怎样提高C#计算程序的performance?java的同步问题请教
★★求助:C++的面试一般会多难?★★ (转载)有人知道AtomicInteger是如何实现的么
Volatile variables do not provide any atomicity (转载)很多东东要是我来设计,会很不一样
C++主要是破坏力大NFLX架构不是已经很稳定了 怎么还那么花钱programming
最expressive的三大语言[合集] Google C++ Coding Standard
请教register请推荐讲算法和数据结构的好书!
相关话题的讨论汇总
话题: c++话题: atomic话题: 同时话题: 失败话题: 代码