java程序跑着跑着就不打印日志了,逐行跑没问题,但是跑的时间久了不定时出现日志停止打印的情况
通过jstack分析原因为sqlsession的问题
先说jstack使用方法,很简单知道几个指令即可:
查找java程序列表 JPS
查询栈信息 jstack 29480
查询锁情况 jstack -l 29480
如果需要,可清屏CLS
完活!!!
我的问题是追踪到我的程序中多线程中有sql执行语句,在sql执行的过程中出现了sqlsession.
flushStatements()时互相影响。
友情提示:
多线程如果没有一个完善的锁,还是建议只单纯的处理逻辑,尽量不掺杂注入的对象操作,对象一旦共享容易出现纠纷。线程处理逻辑,尽可能不出现sql语句的争夺。