C++怎么保证2行代码atomic# Programming - 葵花宝典s*92017-05-16 07:051 楼第一年加入公司,还搞不清状况。今天VP发email让我,让给我们director写一个candid performance review。这种东西一般怎么写,有没有谁能给个模版?谢谢
m*j2017-05-16 07:053 楼不一定是对同一个object写比如说2个vector,V1.push_back(1)和V2.push_back(2)先后执行,2个push_back要么同时成功要么同时失败,这个怎么实现?
b*c2017-05-16 07:054 楼写好话呗,走过场【在 s****9 的大作中提到】: 第一年加入公司,还搞不清状况。: 今天VP发email让我,让给我们director写一个candid performance review。: 这种东西一般怎么写,有没有谁能给个模版?: 谢谢
w*g2017-05-16 07:056 楼写了半天,决定不毒害你了。自己看wiki。https://en.wikipedia.org/wiki/Transaction_processing发明这个的人得了图灵奖。这问题要是你自己提出来的,那很了不起。【在 m**********j 的大作中提到】: 不一定是对同一个object写: 比如说2个vector,V1.push_back(1)和V2.push_back(2)先后执行,2个push_back要么: 同时成功要么同时失败,这个怎么实现?
t*n2017-05-16 07:057 楼google【在 s****9 的大作中提到】: 第一年加入公司,还搞不清状况。: 今天VP发email让我,让给我们director写一个candid performance review。: 这种东西一般怎么写,有没有谁能给个模版?: 谢谢
q*j2017-05-16 07:058 楼多谢多谢。amd实在是便宜呀。请问1090T能比得过i9 760么?自己带不带集显?【在 t*******y 的大作中提到】: http://www.microcenter.com/specials/promotions/AMDbundlePROMO.html
m*j2017-05-16 07:059 楼汗,我是菜鸟,只是刷题的时候想到的有的题需要同时maintain 2个数据结构,万一更新完其中一个,另外一个更新失败了,所有后续操作就全乱了好像所有rollback都是讲数据库的啊,有普通数据结构的rollback吗【在 w***g 的大作中提到】: 写了半天,决定不毒害你了。自己看wiki。: https://en.wikipedia.org/wiki/Transaction_processing: 发明这个的人得了图灵奖。这问题要是你自己提出来的,那很了不起。
t*y2017-05-16 07:0510 楼i9-760 intel新型号?1090T总体性能大致与i5-760差不多单个核的还是i5出色(就是说玩游戏还是看i5)amd的集显apu还没上市吧【在 q**j 的大作中提到】: 多谢多谢。amd实在是便宜呀。请问1090T能比得过i9 760么?: 自己带不带集显?
f*t2017-05-16 07:0511 楼database里一般来说做完最后一步后commit,比较常见的是用MVCChttps://en.wikipedia.org/wiki/Multiversion_concurrency_control ),transaction没commit之前,其它thread或client不会看到被更改的部分。
q*j2017-05-16 07:0512 楼多谢多谢。我就是问i5-760。打错一个字。mc 1090t+便宜主板229,i5 760是169。这样看省得也不太多。【在 t*******y 的大作中提到】: i9-760 intel新型号?: 1090T总体性能大致与i5-760差不多: 单个核的还是i5出色(就是说玩游戏还是看i5): amd的集显apu还没上市吧
m*j2017-05-16 07:0513 楼如果不是数据库,只是普通的几行代码,要么都执行要么都不执行,有办法吗【在 f*******t 的大作中提到】: database里一般来说做完最后一步后commit,比较常见的是用MVCC: https://en.wikipedia.org/wiki/Multiversion_concurrency_control ),: transaction没commit之前,其它thread或client不会看到被更改的部分。
n*t2017-05-16 07:0515 楼這就是當前計算機教學的杯具,學了一大堆名詞。結果就是,一件事情,自己都沒想清楚要幹什麼,先用一堆自己都沒搞清楚的名詞,把自己搞糊塗。【在 m**********j 的大作中提到】: 不一定是对同一个object写: 比如说2个vector,V1.push_back(1)和V2.push_back(2)先后执行,2个push_back要么: 同时成功要么同时失败,这个怎么实现?
m*j2017-05-16 07:0516 楼大牛,说得通俗易懂一点吧,真心求教比如说leetcode的min stack,不是要同时维护2个stack吗,刚操作完其中一个,第2个由于各种原因没执行成功,后面所有结果不就都是错的吗,那只有undo第一个,就是问有没有一个general的方法实现这个【在 n******t 的大作中提到】: 這就是當前計算機教學的杯具,學了一大堆名詞。: 結果就是,一件事情,自己都沒想清楚要幹什麼,先用一堆自己都沒搞清楚的名詞,: 把自己搞糊塗。
w*z2017-05-16 07:0518 楼https://en.wikipedia.org/wiki/Software_transactional_memory【在 t*****n 的大作中提到】: general办法就是搞个lock。先锁,然后修改几个数据结构,然后解锁。: 这不是基本用法么?java里的synchronized block
t*n2017-05-16 07:0519 楼太长,懒得看。总结一下吧【在 w**z 的大作中提到】: https://en.wikipedia.org/wiki/Software_transactional_memory
l*02017-05-16 07:0520 楼自定义stack,让push返回booleansynchronize{if(myStack1.push(a)){if(!myStack2.push(b)){myStack1.pop();}}}
g*y2017-05-16 07:0521 楼内存操作失败,这是bug必须改,8成是野指针,2成是内存没释放。【在 m**********j 的大作中提到】: : 大牛,说得通俗易懂一点吧,真心求教: 比如说leetcode的min stack,不是要同时维护2个stack吗,刚操作完其中一个,第2个: 由于各种原因没执行成功,后面所有结果不就都是错的吗,那只有undo第一个,就是问: 有没有一个general的方法实现这个
g*t2017-05-16 07:0522 楼作为逻辑学家,我觉得只要想办法让这两个指令都同时失败,那么就满足了他说的:同时成功 OR 同时失败所以当编译器看到第一条命令的时候,把电源关了就可以了。这就达到了同时失败的目的。【在 w***g 的大作中提到】: 写了半天,决定不毒害你了。自己看wiki。: https://en.wikipedia.org/wiki/Transaction_processing: 发明这个的人得了图灵奖。这问题要是你自己提出来的,那很了不起。
g*t2017-05-16 07:0523 楼第一个数据结构可能更新失败,你要解决这个问题,对吗?其实这个问题是严格情况下无解的。因为你这个先后什么的自己有矛盾。但是可以想办法减少损失。例如你开100个线程,把第一个操作更新100 次,用成功的那次,这就减少了失败的可能。不用锁内存什么的【在 m**********j 的大作中提到】: : 大牛,说得通俗易懂一点吧,真心求教: 比如说leetcode的min stack,不是要同时维护2个stack吗,刚操作完其中一个,第2个: 由于各种原因没执行成功,后面所有结果不就都是错的吗,那只有undo第一个,就是问: 有没有一个general的方法实现这个
g*t2017-05-16 07:0525 楼我写过用在海量设备上的atomic read什么的C代码。如果是硬件相关的这类问题,能不搞高能技术尽量不要搞,那个不是一般人玩的。【在 g****t 的大作中提到】: 第一个数据结构可能更新失败,你要解决这个问题,对吗?: 其实这个问题是严格情况下无解的。因为你这个先后什么的自己有矛盾。: 但是可以想办法减少损失。例如你开100个线程,把: 第一个操作更新100 次,用成功的那次,这就减少了失败的可能。: 不用锁内存什么的