为了解决使用线程池会导致数据库连接过多的问题,将数据库操作及业务逻辑放在单独线程中处理。
采用LinkedBlockingQueue来处理线程的消息队列。在调试的过程中遇到了程序不能正常退出的问题,通过jstack -l pid 命令(首先需要通过ps -aux 找到服务器程序的pid)查出是由于处理客户端超时的IdleStateHandler相应的计时器没有停止导致的,所以在程序退出是需要stop()掉计时器。
为了解决使用线程池会导致数据库连接过多的问题,将数据库操作及业务逻辑放在单独线程中处理。
采用LinkedBlockingQueue来处理线程的消息队列。在调试的过程中遇到了程序不能正常退出的问题,通过jstack -l pid 命令(首先需要通过ps -aux 找到服务器程序的pid)查出是由于处理客户端超时的IdleStateHandler相应的计时器没有停止导致的,所以在程序退出是需要stop()掉计时器。