avatar
芒果那家的电面# JobHunting - 待字闺中
l*b
1
斗胆上来发个MJ,希望在那里的兄弟姐妹高抬贵手。
一老米面试的。貌似一直以来还没真的被3哥哥3姐姐面试过。
1)如果多个thread要share一个Map的话,怎么实现。这个可以直接用Java的
synchronizedMap,在Collections里面有一个,在concurrent package里面也有一个,
他问是否用过concurrent里面那个,我只知道Collections里面那个,所以说不知道。
然后还谈了一下2个的区别,也后续了一个问如果read很多,write很少的话,会怎么实
现。
2)问的是在multithread里面怎么实现int的increment。我直接说了用AtomicInteger
。或者可以用lock(read,write都要用)来实现这个atomic的操作。
3)Coding,给一个interface:
public interface Stream {
int getNext();
}
Stream都是infinite的。getNext()永远return一个比上次还要大的int。让你实现一个
class:
public class MergeStream implements Stream {
}
要求这个class在constructor里面accept一个array的Stream,然后同时实现getNext()
method,也要永远返回比上一次大的int。最后问了如果有N个Stream,然后getNext被
用了K次的话,复杂度是个什么情况。
整体不难,主要是关注的multi threading的东西。所以要多看看。还好最近学Akka,
看了一些东西,能吹一下牛。
avatar
r*h
2
这是哪一家呀?
Akka去年年底的时候用过,现在基本上忘得差不多了。。。

AtomicInteger

【在 l**b 的大作中提到】
: 斗胆上来发个MJ,希望在那里的兄弟姐妹高抬贵手。
: 一老米面试的。貌似一直以来还没真的被3哥哥3姐姐面试过。
: 1)如果多个thread要share一个Map的话,怎么实现。这个可以直接用Java的
: synchronizedMap,在Collections里面有一个,在concurrent package里面也有一个,
: 他问是否用过concurrent里面那个,我只知道Collections里面那个,所以说不知道。
: 然后还谈了一下2个的区别,也后续了一个问如果read很多,write很少的话,会怎么实
: 现。
: 2)问的是在multithread里面怎么实现int的increment。我直接说了用AtomicInteger
: 。或者可以用lock(read,write都要用)来实现这个atomic的操作。
: 3)Coding,给一个interface:

avatar
l*b
3
芒果。。。。芒果。。。。。数据库的那个。

【在 r**h 的大作中提到】
: 这是哪一家呀?
: Akka去年年底的时候用过,现在基本上忘得差不多了。。。
:
: AtomicInteger

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