Jackson线程安全问题
参考文章
- How do I correctly reuse Jackson ObjectMapper?
- How correctly and thread safe reuse Jackson ObjectReader?
- Should I declare Jackson’s ObjectMapper as a static field?
- Why are static variables considered evil?
小结
虽然Jaconson ObjectMapper实例线程安全,但最好不要在多线程场景使用一个ObjectMapper,因为这样可能造成大多线程等待的情况,效率低下。
建议使用ObjectPool。
但我看hadoop源码里面每次都是新创建ObjectMapper实例来使用:
new ObjectMapper()
经过实测,每次这样用效率也还好,能满足一般场景,只要不是对效率有特别高的要求。
还可参考: