Redian新闻
>
EB3C 2007大潮什么时候能清空啊
avatar
EB3C 2007大潮什么时候能清空啊# EB23 - 劳工卡
l*3
1
刚结束了Google电面,Software Engineer职位。
1. 要求存储gmail的日志,给定发信时间,发信人,收信人,要求设计数据库表,存储
日志,并给出制定访问的SQL语句。
2. 如何设计日期时间、发信人、收信人的数据存储方式,节省数据库空间?
3. 给定一段代码,改错,如下:
W * SSS :: getW ( int id ) const
{
Lock( lock_ );
iterator it = find ( id );
if ( it != end() ) {
return * it;
}
W * p = new W( id );
insert( p );
return p;
}
4. 如果同时有许多程序并发执行上述代码,而 find() 的hit percent=99.99%,如何
修改上面的代码改进效率?
大概就是这些,希望对大家有所帮助。求Bless。
avatar
m*1
2
thx
avatar
j*1
3
都等了这么多年了。
avatar
j*x
4
bless
最后一个怎么回答?
avatar
l*s
5
这个可以refer吗?

【在 m***1 的大作中提到】
: thx
avatar
s*u
6
是呀。

【在 j*******1 的大作中提到】
: 都等了这么多年了。
avatar
w*z
7
错误时需要 unlock?

【在 l*********3 的大作中提到】
: 刚结束了Google电面,Software Engineer职位。
: 1. 要求存储gmail的日志,给定发信时间,发信人,收信人,要求设计数据库表,存储
: 日志,并给出制定访问的SQL语句。
: 2. 如何设计日期时间、发信人、收信人的数据存储方式,节省数据库空间?
: 3. 给定一段代码,改错,如下:
: W * SSS :: getW ( int id ) const
: {
: Lock( lock_ );
: iterator it = find ( id );
: if ( it != end() ) {

avatar
d*i
8
co 求啊

【在 m***1 的大作中提到】
: thx
avatar
x*y
10
1. It seems that receiver is not necessary, as the sender can not send two
emails at the same time.
2. B
3.4.
W * SSS :: getW ( int id )
{
iterator it = find ( id );
if ( it != end() ) {
return * it;
}
Lock( lock_ );
W * p = new W( id );
insert( p );
Unlock(lock_); //not always work, better write a holder class
//tha lock in the constructor and unlocks in the des
return p;
}
avatar
w*n
11
这都哪里放出来的消息, 说果园卡可以refer?!
avatar
j*u
12
use a reader-writer lock instead of mutual exclusive lock so that readers do
n't block each other

【在 j********x 的大作中提到】
: bless
: 最后一个怎么回答?

avatar
i*9
13
这个电面是不是跟lz的 background有关系,有点不太常规
avatar
l*a
14
群发?

【在 x***y 的大作中提到】
: 1. It seems that receiver is not necessary, as the sender can not send two
: emails at the same time.
: 2. B
: 3.4.
: W * SSS :: getW ( int id )
: {
: iterator it = find ( id );
: if ( it != end() ) {
: return * it;
: }

avatar
z*o
15
W * SSS :: getW ( int id )
{
Lock( lock_r );
if( reader == 0) Lock( lock_w)
reader++;
Unlock(lock_r );
iterator it = find ( id );
if ( it != end() ) {
W* p = *it;
Lock( lock_r );
reader--;
if( reader == 0 ) Unlock( lock_w);
Unlock( lock_r );
return p;
}
Lock( lock_w);
W * p = new W( id );
insert( p );
Unlock( lock_w);
return p;
}
avatar
J*e
16
bless
avatar
w*e
17
bless

【在 l*********3 的大作中提到】
: 刚结束了Google电面,Software Engineer职位。
: 1. 要求存储gmail的日志,给定发信时间,发信人,收信人,要求设计数据库表,存储
: 日志,并给出制定访问的SQL语句。
: 2. 如何设计日期时间、发信人、收信人的数据存储方式,节省数据库空间?
: 3. 给定一段代码,改错,如下:
: W * SSS :: getW ( int id ) const
: {
: Lock( lock_ );
: iterator it = find ( id );
: if ( it != end() ) {

avatar
j*2
18
unlock写得太麻烦。直接goto 到一个__unlock label,然后在那个label 下面写一个
unlock就好了
还有一点就是 new (p)以后需要检查分配是否成功。

【在 z****o 的大作中提到】
: W * SSS :: getW ( int id )
: {
: Lock( lock_r );
: if( reader == 0) Lock( lock_w)
: reader++;
: Unlock(lock_r );
: iterator it = find ( id );
: if ( it != end() ) {
: W* p = *it;
: Lock( lock_r );

avatar
b*s
19
Lock(lock)会不会是自动包装的lock
比如Mutex m;
Class Lock
{
public:
Lock(Mutex &) { //here we lock the mutex }
~Lock() { //here we release the mutex}
private:
Mutex & m;
}
avatar
g*s
20
is the code in java?

【在 l*********3 的大作中提到】
: 刚结束了Google电面,Software Engineer职位。
: 1. 要求存储gmail的日志,给定发信时间,发信人,收信人,要求设计数据库表,存储
: 日志,并给出制定访问的SQL语句。
: 2. 如何设计日期时间、发信人、收信人的数据存储方式,节省数据库空间?
: 3. 给定一段代码,改错,如下:
: W * SSS :: getW ( int id ) const
: {
: Lock( lock_ );
: iterator it = find ( id );
: if ( it != end() ) {

avatar
M*u
21
Java代码哪这么难看?

存储

【在 g*********s 的大作中提到】
: is the code in java?
avatar
b*s
22
觉得问题还是const和insert(p)
avatar
l*a
23
同意。

【在 b*******s 的大作中提到】
: 觉得问题还是const和insert(p)
avatar
j*x
24
ok. I thought this was implemented already in the macro :(

so that readers do

【在 j*****u 的大作中提到】
: use a reader-writer lock instead of mutual exclusive lock so that readers do
: n't block each other

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