由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Java版 - 请问这个面试题,关于synchronize hashmap
相关主题
问一个基础问题问个Object.hashCode()的问题
List, LinkedList and Vector请教一段代码,关于hashCode()
web service returns HashMap that contains multiple ArrayList也问个 HashMap问题
HashMap cachetreemap和hashma p的问题
jvm是怎么implement monitor的?java多线程问题请教
answer Re: how HashMap/Hashtable compare key?Java里有没有象cell array一样的东西
[转载] How do I sort a map in Java?Java 面试常见问题!
Java的工作面试主要考什么?主要是算法吗?Simple question: delete element from collection on condition?
相关话题的讨论汇总
话题: put话题: hashmap话题: key话题: 线程
进入Java版参与讨论
1 (共1页)
R*********o
发帖数: 33
1
前两天面试。
模拟一个银行账户,有get(key)和put(key, value)两个method,怎么implement。
我随口说hashmap,然后他说要实现多线程,我就说用synchronize。但是如果只
synchronize put的话,也不是线程安全的。这样一个thread用put,另一个thread可以
get,所以我说同时synchronize get和put,用synchronize block。但是他说如果
synchronize both get and put,这样效率低下,这样如果是不同的key,其实不会影
响。他要求对于相同的key synchronize,不同的key不同的线程可以同时调用get和put
method,我就傻逼了,这个不晓得怎么弄。
反正最后折腾半天他说只lock buncket arrayList,然后两个线程不能同时put value
,但是两个线程可以同时hashCode(),我也就点头过去了。。。。
我想请问版上大神,这个lock buncket arrayList要怎么操作,这个怎么就能实现他说
的这个功能了?
z*******3
发帖数: 13709
2
concurrenthashmap
l*******g
发帖数: 82
3
把数据结构改成更细小粒度。然后sync。
HashMap accounts;
public void put(acctId, money) {
Account acct = accounts.get(acctId);
synchronize(acct) {
...
}
}

前两天面试。模拟一个银行账户,有get(key)和put(key, value)两个method,怎么
implement。我随口说hashmap,然后他说要实现多线程,我就说用........

【在 R*********o 的大作中提到】
: 前两天面试。
: 模拟一个银行账户,有get(key)和put(key, value)两个method,怎么implement。
: 我随口说hashmap,然后他说要实现多线程,我就说用synchronize。但是如果只
: synchronize put的话,也不是线程安全的。这样一个thread用put,另一个thread可以
: get,所以我说同时synchronize get和put,用synchronize block。但是他说如果
: synchronize both get and put,这样效率低下,这样如果是不同的key,其实不会影
: 响。他要求对于相同的key synchronize,不同的key不同的线程可以同时调用get和put
: method,我就傻逼了,这个不晓得怎么弄。
: 反正最后折腾半天他说只lock buncket arrayList,然后两个线程不能同时put value
: ,但是两个线程可以同时hashCode(),我也就点头过去了。。。。

1 (共1页)
进入Java版参与讨论
相关主题
Simple question: delete element from collection on condition?jvm是怎么implement monitor的?
自己写的类如何做到线程安全answer Re: how HashMap/Hashtable compare key?
几个Java面试题[转载] How do I sort a map in Java?
immutable listJava的工作面试主要考什么?主要是算法吗?
问一个基础问题问个Object.hashCode()的问题
List, LinkedList and Vector请教一段代码,关于hashCode()
web service returns HashMap that contains multiple ArrayList也问个 HashMap问题
HashMap cachetreemap和hashma p的问题
相关话题的讨论汇总
话题: put话题: hashmap话题: key话题: 线程