某司面试题
来源:互联网 发布:java打印乘法表 编辑:程序博客网 时间:2024/06/05 20:59
下午匆忙电话面试了一下某司,有几个问题没有回答上来,总结一下:
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请求结构
0 0
- 某司面试题
- 试题
- 试题
- 试题
- 试题
- 试题
- 试题
- 试题
- 试题
- 试题
- 试题
- 试题
- 试题
- 微软试题
- 面试题....
- 几道面试题
- 几道面试题
- 面试题
- 敏捷团队经验之谈,你的团队也能成为特总部队
- IOS7 IOS5 IOS6 内容覆盖住的问题 解决方法
- zookeeper master动态选举实现设计
- SVN服务器搭建和使用(二)
- exit()和_exit()函数
- 某司面试题
- 关于cvCvtColor的用法
- 基于注解的SpringMVC简单介绍
- 内存分配之动态数组
- 《高效学习OpenGL》 之 雾 glFog(), glFogCoordf()
- 透明图片做背景和形状的方法swing
- 给ligerui分页。
- uva 1451 - Average(数形结合)
- Android 4.4.2 Pptp VPN connecting log ---SUCCESS (LG Nexus)