很多情况我们会在服务端创建cache来缓存一些不太变化的数据,但是往往会牵涉到并发的情况,同时还可能和性能相关,所以要灵活应用ConcurrentHashmap和Pool的一些知识 。在WebService牵涉到更多的并发情况,在我们将对象从Pool中取出,然后利用这个从Pool取出的对象得到结果数据,之后将这个对象放回Pool的过程中,如何保证结果数据是线程独立的,如果结果数据还是有reference到Pool中的对象的话,就有可能在数据返回前,被别的线程修改。所以Pool对象还回Pool的时间点,以及数据对象的原子性在并发设计时是很重要的。
但是并发的控制很多时候很复杂,出了问题也很难重现,所以如果出现并发问题时,先抽出来一些时间来分析问题可能产生的点,尤其是根据现象找到问题点然后倒推很重要,否则可能会浪费很多时间。