我使用Mina框架来接收多线程的数据,当我想取得创建时间(从sessionCreated()方法获得)、session的上下文信息(从messageReceived()方法获得)以及断开时间(从sessionClosed()方法获得)的时候,我使用log4j的MDC来输出到数据库。可是问题来了,因为要取得断开时间,必须得第一个线程断开后触发sessionClosed()方法取得断开时间后才能将第一个线程的所有信息才会存入到数据库;但是当第一个线程没断开,第二个线程就进来了发送数据,而且马上触发sessionClosed()线程,那么它就覆盖了第一个线程的信息了。使得本来属于第一个线程的信息取不到了。其中我使用ConcurrentHashMap来存储进入数据库前的信息 。不知道有什么更好的方法可以解决呢?