m********l 发帖数: 791 | 1 比如
实现一个LRU
实现一个Queue
实现一个HashMap
follow up:how to make it thread-safe? how to scale it?
常考题,版上的大神能分享一下经验吗?感谢! |
i*****9 发帖数: 3157 | 2 queue 和 hashmap 还好, LRU 要讨论
thread safe 和 scalability 估计3小时都讨论不完
:比如
:实现一个LRU |
m********l 发帖数: 791 | 3 谢谢 我也清楚这些往深了说都是几个小时都讲不完
但是我想问的就是如果在面试中碰到了这样的问题,要提到什么才会impress面试官。
有大概的点就行。
【在 i*****9 的大作中提到】 : queue 和 hashmap 还好, LRU 要讨论 : thread safe 和 scalability 估计3小时都讨论不完 : : :比如 : :实现一个LRU
|
a*****s 发帖数: 1121 | 4 自己查java的源代码不就一目了然了么?懒成这样? |
G**O 发帖数: 147 | 5 那您得问面试官啊
每个面试官期待的都不一样。。。
比如有的喜欢讨论怎么锁,LRU一般fine-grained lock咯,
【在 m********l 的大作中提到】 : 谢谢 我也清楚这些往深了说都是几个小时都讲不完 : 但是我想问的就是如果在面试中碰到了这样的问题,要提到什么才会impress面试官。 : 有大概的点就行。
|
m********l 发帖数: 791 | 6 这位大哥今天心情可能不好。。
java的hashmap和queue都不是thread-safe的吧,更不用说how to scale了
当然java有ConcurrentHashMap (那是不是答到这个点可以加分呢?)
我主要是想问问版上的前辈,觉得如何回答会比较加分而已,我自己私下可以去深入学习
我是真心求问,你要是真是略知一二,不妨提点
【在 a*****s 的大作中提到】 : 自己查java的源代码不就一目了然了么?懒成这样?
|
m********l 发帖数: 791 | 7 对 我的问题就是看看大家被问到这个问题后会如何回答(什么方向都行),咱暂时先撇
开面试官想要什么。要是啥都掰不出来别提面试官想要什么了。。
LRU一般fine-grained lock, 感觉这个答起来也是很tough。面试官问那你会如何fine
-grain呢。。跪了。。感觉也是类似ConcurrentHashMap那样的fine-grain, 不知对否
【在 G**O 的大作中提到】 : 那您得问面试官啊 : 每个面试官期待的都不一样。。。 : 比如有的喜欢讨论怎么锁,LRU一般fine-grained lock咯,
|
f*********r 发帖数: 7485 | 8 加锁就thread-safe
要分布式,每个处理办法都不一样
【在 m********l 的大作中提到】 : 比如 : 实现一个LRU : 实现一个Queue : 实现一个HashMap : follow up:how to make it thread-safe? how to scale it? : 常考题,版上的大神能分享一下经验吗?感谢!
|
z****e 发帖数: 54598 | 9 如何线程安全
jcu,concurrenthashmap是答案之一,可以加分
如何scale
同步转异步,io bound节省线程
actor model随便找一个
java当然用vert.x啊
akka也行,但是akka比较难用
lock free的节奏
lock用多了,性能就下来了,lock越少越好
actor model可以实现lock free
但是前提是要完成同步转异步,线程数不能开太多
一般是available cores,比如jvm自身的fork&join pool
vert.x的eventloop pool,这个是available cores*2
因为netty里面需要分一半cpu资源给io,这一句猜的,不确定
因为线程数少了,所以lock数自然也少了,线程多,lock就多
最后写起来很ugly,怎么办?
future/promise, reativex(rxjava)和coroutine,三选一
还记得那个snapshot还是什么用的是erlang么?
最早actor model就是那边出来的 |
a*****s 发帖数: 1121 | |
m********l 发帖数: 791 | 11 大神忒牛逼了
这个答出来估计90%的面试官都全部懵逼
咱还只能聊聊备份,主从关系,一致性哈希,数据库分片的这样的角度来聊。。。
对了 jcu是个什么东西 放狗都找不到
【在 z****e 的大作中提到】 : 如何线程安全 : jcu,concurrenthashmap是答案之一,可以加分 : 如何scale : 同步转异步,io bound节省线程 : actor model随便找一个 : java当然用vert.x啊 : akka也行,但是akka比较难用 : lock free的节奏 : lock用多了,性能就下来了,lock越少越好 : actor model可以实现lock free
|
z****e 发帖数: 54598 | 12 java concurrent util
concurrent hashmap所在的那个包
【在 m********l 的大作中提到】 : 大神忒牛逼了 : 这个答出来估计90%的面试官都全部懵逼 : 咱还只能聊聊备份,主从关系,一致性哈希,数据库分片的这样的角度来聊。。。 : 对了 jcu是个什么东西 放狗都找不到
|
m********l 发帖数: 791 | 13 晓得了 谢谢!
【在 z****e 的大作中提到】 : java concurrent util : concurrent hashmap所在的那个包
|