Redian新闻
>
C++怎么保证2行代码atomic
avatar
C++怎么保证2行代码atomic# Programming - 葵花宝典
s*9
1
第一年加入公司,还搞不清状况。
今天VP发email让我,让给我们director写一个candid performance review。
这种东西一般怎么写,有没有谁能给个模版?
谢谢
avatar
q*j
2
怎么也找不着那个买amd芯片给主板的网页了。多谢了。
avatar
m*j
3
不一定是对同一个object写
比如说2个vector,V1.push_back(1)和V2.push_back(2)先后执行,2个push_back要么
同时成功要么同时失败,这个怎么实现?
avatar
b*c
4
写好话呗,走过场

【在 s****9 的大作中提到】
: 第一年加入公司,还搞不清状况。
: 今天VP发email让我,让给我们director写一个candid performance review。
: 这种东西一般怎么写,有没有谁能给个模版?
: 谢谢

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

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

avatar
t*n
7
google

【在 s****9 的大作中提到】
: 第一年加入公司,还搞不清状况。
: 今天VP发email让我,让给我们director写一个candid performance review。
: 这种东西一般怎么写,有没有谁能给个模版?
: 谢谢

avatar
m*j
9

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

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

avatar
t*y
10
i9-760 intel新型号?
1090T总体性能大致与i5-760差不多
单个核的还是i5出色(就是说玩游戏还是看i5)
amd的集显apu还没上市吧

【在 q**j 的大作中提到】
: 多谢多谢。amd实在是便宜呀。请问1090T能比得过i9 760么?
: 自己带不带集显?

avatar
q*j
12
多谢多谢。我就是问i5-760。打错一个字。
mc 1090t+便宜主板229,i5 760是169。这样看省得也不太多。

【在 t*******y 的大作中提到】
: i9-760 intel新型号?
: 1090T总体性能大致与i5-760差不多
: 单个核的还是i5出色(就是说玩游戏还是看i5)
: amd的集显apu还没上市吧

avatar
m*j
13

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

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

avatar
f*t
14
lock呗

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

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

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

avatar
m*j
16

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

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

avatar
t*n
17
general办法就是搞个lock。先锁,然后修改几个数据结构,然后解锁。
这不是基本用法么?java里的synchronized block
avatar
l*0
20
自定义stack,让push返回boolean
synchronize{
if(myStack1.push(a)){
if(!myStack2.push(b)){
myStack1.pop();
}
}
}
avatar
g*y
21
内存操作失败,这是bug必须改,8成是野指针,2成是内存没释放。

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

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

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

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

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

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

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

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。