avatar
Nobody buy REE?# Stock
r*g
1
前几天电面一大公司,题目是bounded blocking queue,因为我准备过r/w lock的实现
,所以大概知道是mutex+CV,也就是传说中的monitor,但是我是用c++,所以不会java。
问题来了,写完了,貌似没什么问题,然后有一个问题,是要实现writemultiple(),
就是一次写入多个,如果没有空间写,需要等reader,而且wrtemultiple过程中不能被
其它writer打断,我因为本来对这个不熟,所以一下没反应过来。
但是印度面试官提醒我可以引入其它lock,所以我真的就上钩了,在这里卡壳了一会,
到最后也没写完整。
今天仔细复习了一下,现在想想,其实引入一个变量表明现在正在multiplewrite,不
就可以block writer了吗?而且丝毫不影响已有的reader逻辑。貌似不用引入新的CV。
幸好国人大哥似乎帮忙了,还可以继续二面。
avatar
t*r
2
买2送三,17.98$, 满75免邮费,有coupon 15OFF75。可以买10瓶送15瓶,
得25瓶,共17.98X5-15=74.95,不知有税没有。合3$一瓶,不知与NM比起来,
哪个划算。
avatar
O*L
3
Good up ah!
avatar
b*5
4
如果就一个变量, 你怎么才能发现reader可以了, 现在有足够空间写了?

java。

【在 r*******g 的大作中提到】
: 前几天电面一大公司,题目是bounded blocking queue,因为我准备过r/w lock的实现
: ,所以大概知道是mutex+CV,也就是传说中的monitor,但是我是用c++,所以不会java。
: 问题来了,写完了,貌似没什么问题,然后有一个问题,是要实现writemultiple(),
: 就是一次写入多个,如果没有空间写,需要等reader,而且wrtemultiple过程中不能被
: 其它writer打断,我因为本来对这个不熟,所以一下没反应过来。
: 但是印度面试官提醒我可以引入其它lock,所以我真的就上钩了,在这里卡壳了一会,
: 到最后也没写完整。
: 今天仔细复习了一下,现在想想,其实引入一个变量表明现在正在multiplewrite,不
: 就可以block writer了吗?而且丝毫不影响已有的reader逻辑。貌似不用引入新的CV。
: 幸好国人大哥似乎帮忙了,还可以继续二面。

avatar
e*y
5
pp的我只买过Omega 3-6-9,其实挺贵的,可我妈就信那个。上次有个30%off的,最近
好久没了。其实自己吃的话 NM或者善存Omega 3都行啊,保健品也没啥好不好的
avatar
g*0
6
现在是个好价位么?
avatar
b*5
7
如果就一个变量, 你怎么才能发现reader可以了, 现在有足够空间写了?
如果就一个变量, 你怎么才能发现writemultiple finish了?

java。

【在 r*******g 的大作中提到】
: 前几天电面一大公司,题目是bounded blocking queue,因为我准备过r/w lock的实现
: ,所以大概知道是mutex+CV,也就是传说中的monitor,但是我是用c++,所以不会java。
: 问题来了,写完了,貌似没什么问题,然后有一个问题,是要实现writemultiple(),
: 就是一次写入多个,如果没有空间写,需要等reader,而且wrtemultiple过程中不能被
: 其它writer打断,我因为本来对这个不熟,所以一下没反应过来。
: 但是印度面试官提醒我可以引入其它lock,所以我真的就上钩了,在这里卡壳了一会,
: 到最后也没写完整。
: 今天仔细复习了一下,现在想想,其实引入一个变量表明现在正在multiplewrite,不
: 就可以block writer了吗?而且丝毫不影响已有的reader逻辑。貌似不用引入新的CV。
: 幸好国人大哥似乎帮忙了,还可以继续二面。

avatar
t*r
8
fatwallet还有14%的cash back。这样算起来更便宜

【在 t******r 的大作中提到】
: 买2送三,17.98$, 满75免邮费,有coupon 15OFF75。可以买10瓶送15瓶,
: 得25瓶,共17.98X5-15=74.95,不知有税没有。合3$一瓶,不知与NM比起来,
: 哪个划算。

avatar
f*x
9
MM在亮muscle
avatar
r*g
10
这一个变量表示现在有multiplewriter存在
multiplewriter里面,每次尽量写所有的,如果写不完,那么就read_CV.signal()
multiplewriter(int no_of_item){
mutex.lock()
while(没有空间写)
pthread_cond_wait(write_CV, mutex);
bool_now_multiple_writer = true;
int written = 0;
while(written判断可以写多少
写入n
written+=n;
read_CV.signal(); //让reader继续写。
while(没有空间写)
pthread_cond_wait(write_CV, mutex);
}
bool_now_multiple_writer = false;
mutex.unlock();
}
singlewriter(){
逻辑不变,只是多一个判断bool_now_multiple_writer==false才继续。
}
这样行不?求建议。

【在 b**********5 的大作中提到】
: 如果就一个变量, 你怎么才能发现reader可以了, 现在有足够空间写了?
: 如果就一个变量, 你怎么才能发现writemultiple finish了?
:
: java。

avatar
j*y
11
没啥不好,省心省事,可以一次性大量买
不过有时会有买1送2,不急的话,可以等等

【在 t******r 的大作中提到】
: 买2送三,17.98$, 满75免邮费,有coupon 15OFF75。可以买10瓶送15瓶,
: 得25瓶,共17.98X5-15=74.95,不知有税没有。合3$一瓶,不知与NM比起来,
: 哪个划算。

avatar
e*a
12
it's important that ur solution should match the interviewer's thought
even though ur solution is excellent.
avatar
b*n
13
唉,人家并没有说错,只需要加另一个write lock来保证不同的write操作是mutual
excluded就可以了,灰常简单的做法。
你这么写还需要稍微修改一下,现在还不能保证不同multiwrite之间不能被打断的。
avatar
r*g
14
如果是多个multiplewriter,似乎也可以,我稍微改了下
multiplewriter(int no_of_item){
mutex.lock()
while(没有空间写 && bool_now_multiple_writer==false)
pthread_cond_wait(write_CV, mutex);
bool_now_multiple_writer = true;
int written = 0;
while(written判断可以写多少
写入n
written+=n;
read_CV.signal(); //让reader继续写。
while(没有空间写) //这里就不能等待bool_now_multiple_writer==false了。
pthread_cond_wait(write_CV, mutex);
}
bool_now_multiple_writer = false;
mutex.unlock();
}
singlewrite(){
mutex.lock();
while (没有空间写 && bool_now_multiple_writer==false)
pthread_cond_wait(write_CV, mutex);
写一个entry
read_CV.signal(); //让reader继续写。
mutex.unlock();
}
read(){
mutex.lock();
while (没有entry读)
pthread_cond_wait(read_CV, mutex);
读一个entry
write_CV.signal(); //让writer继续写
mutex.unlock();
}

【在 b*****n 的大作中提到】
: 唉,人家并没有说错,只需要加另一个write lock来保证不同的write操作是mutual
: excluded就可以了,灰常简单的做法。
: 你这么写还需要稍微修改一下,现在还不能保证不同multiwrite之间不能被打断的。

avatar
i*w
15
看来是L

java。

【在 r*******g 的大作中提到】
: 前几天电面一大公司,题目是bounded blocking queue,因为我准备过r/w lock的实现
: ,所以大概知道是mutex+CV,也就是传说中的monitor,但是我是用c++,所以不会java。
: 问题来了,写完了,貌似没什么问题,然后有一个问题,是要实现writemultiple(),
: 就是一次写入多个,如果没有空间写,需要等reader,而且wrtemultiple过程中不能被
: 其它writer打断,我因为本来对这个不熟,所以一下没反应过来。
: 但是印度面试官提醒我可以引入其它lock,所以我真的就上钩了,在这里卡壳了一会,
: 到最后也没写完整。
: 今天仔细复习了一下,现在想想,其实引入一个变量表明现在正在multiplewrite,不
: 就可以block writer了吗?而且丝毫不影响已有的reader逻辑。貌似不用引入新的CV。
: 幸好国人大哥似乎帮忙了,还可以继续二面。

avatar
b*d
16
记住老印面试官肯定不会提示你,只会逼问你,或者故意误导你,别的老白,老中一般
都乐意给你点提示,老印就是找机会给你使绊子下黑手。

java。

【在 r*******g 的大作中提到】
: 前几天电面一大公司,题目是bounded blocking queue,因为我准备过r/w lock的实现
: ,所以大概知道是mutex+CV,也就是传说中的monitor,但是我是用c++,所以不会java。
: 问题来了,写完了,貌似没什么问题,然后有一个问题,是要实现writemultiple(),
: 就是一次写入多个,如果没有空间写,需要等reader,而且wrtemultiple过程中不能被
: 其它writer打断,我因为本来对这个不熟,所以一下没反应过来。
: 但是印度面试官提醒我可以引入其它lock,所以我真的就上钩了,在这里卡壳了一会,
: 到最后也没写完整。
: 今天仔细复习了一下,现在想想,其实引入一个变量表明现在正在multiplewrite,不
: 就可以block writer了吗?而且丝毫不影响已有的reader逻辑。貌似不用引入新的CV。
: 幸好国人大哥似乎帮忙了,还可以继续二面。

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