好贷网好贷款

某司面试题

发布时间:2016-12-5 16:37:39 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"某司面试题",主要涉及到某司面试题方面的内容,对于某司面试题感兴趣的同学可以参考一下。

下午匆忙电话面试了一下某司,有几个问题没有回答上来,总结一下: 1、zookeeper数据同步原理 读取的时候不需要数据同步,写操作时,follower的FollowerRequestProcessor会将该操作作为LEADER.REQEST发给leader。leader发起投票,由followers进行投票,leader对投票结果进行计算决定是否通过该决议,如果通过执行该决议(事务),否则什么也不做。 2、ThreadLocal原理 ThreadLocal作用是保存线程的局部变量,例如保存每个线程自身状态等,它之所以能够与线程绑定,是因为其为每一个使用该变量的线程都提供一个变量值的副本,这样每个线程都操作的是自己的副本,其源码如下: public T get() { Thread t = Thread.currentThread(); //从当前线程中获取该线程保存副本的Map ThreadLocalMap map = getMap(t); if (map != null) { //根据当前线程,获取保存在副本中的value值 ThreadLocalMap.Entry e = map.getEntry(this); if (e != null) return (T)e.value; } //返回null return setInitialValue(); } private T setInitialValue() { T value = initialValue(); //获取当前线程 Thread t = Thread.currentThread(); //获取线程副本 ThreadLocalMap map = getMap(t); //将值保存在副本中 if (map != null) map.set(this, value); else createMap(t, value); return value; } 3、ConcurrentHashMap原理 ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分离技术。它使用了多个锁来控制对hash表的不同部分进行的修改。ConcurrentHashMap内部使用段(Segment)来表示这些不同的部分,每个段其实就是一个小的hash table,它们有自己的锁。只要多个修改操作发生在不同的段上,它们就可以并发进行。 4、HTTP请求结构

上一篇:经常在.net中使用的下载链接地址
下一篇:

相关文章

关键词: 某司面试题

相关评论