r**u 发帖数: 1567 | 1 1. Distributed hashing (不知道...)
2. class MoneyManager {
public:
void transferMoney(Account &a1, Account &a2, double amount) {
a1.dedrease(amount);
a2.increase(amount);
}
}
这code有什么问题?就知道synchronization problem. What else?
剩下都是老题,不说了。 |
r********g 发帖数: 1351 | 2 第一题也不知道。
第二题,我能想到的一个是exception handling吧,比如,如果a1里钱不够呢?
【在 r**u 的大作中提到】 : 1. Distributed hashing (不知道...) : 2. class MoneyManager { : public: : void transferMoney(Account &a1, Account &a2, double amount) { : a1.dedrease(amount); : a2.increase(amount); : } : } : 这code有什么问题?就知道synchronization problem. What else? : 剩下都是老题,不说了。
|
f*******h 发帖数: 53 | |
l*******o 发帖数: 791 | 4 第二题考的是transaction的问题吧,decrease和increase要么做要么都不做,而且由
于多线程的原因,这两部要加锁 |
r**u 发帖数: 1567 | 5 这个我提了。不过he wants more。上面两位说的有点道理。
【在 l*******o 的大作中提到】 : 第二题考的是transaction的问题吧,decrease和increase要么做要么都不做,而且由 : 于多线程的原因,这两部要加锁
|
s*****n 发帖数: 5488 | 6
第二个要放到一个transaction里面。有什么同步的问题?保住ACID。
【在 r**u 的大作中提到】 : 1. Distributed hashing (不知道...) : 2. class MoneyManager { : public: : void transferMoney(Account &a1, Account &a2, double amount) { : a1.dedrease(amount); : a2.increase(amount); : } : } : 这code有什么问题?就知道synchronization problem. What else? : 剩下都是老题,不说了。
|
s*****n 发帖数: 5488 | 7 搞错了。因为穿件来的是reference.是需要防止别的进程同时写入或者利用amount。
【在 s*****n 的大作中提到】 : : 第二个要放到一个transaction里面。有什么同步的问题?保住ACID。
|
y*********e 发帖数: 518 | 8 传入的参数 double amount 有没有可能是负值阿?有没有可能是 Nan?
【在 r**u 的大作中提到】 : 这个我提了。不过he wants more。上面两位说的有点道理。
|
g******d 发帖数: 511 | 9 第一题按hash range放到不同机器上.
【在 r**u 的大作中提到】 : 1. Distributed hashing (不知道...) : 2. class MoneyManager { : public: : void transferMoney(Account &a1, Account &a2, double amount) { : a1.dedrease(amount); : a2.increase(amount); : } : } : 这code有什么问题?就知道synchronization problem. What else? : 剩下都是老题,不说了。
|