近日,在弄一个win10上跑的java程序的时候,经常发现程序卡死的问题。 查了下资料(https://www.bbsmax.com/A/Gkz1DGrdR6/),在命令行下点击鼠标的时候,就会进入选择模式,锁住了屏幕,相当于阻塞了主线程。
代码使用了hibernate,查看栈信息发现线程block了。
栈信息:
源代码截图:
程序阻塞在这一行。由于定时的也在这个线程上跑,导致定时的全都停了。
解决方法: 将bat控制台弄到后台。(http://blog.csdn.net/carl6148/article/details/7905549)
PS: win10 powershell有个类似linux的tail -f的命令。
get-content .\1.txt -ReadCount 0 -Tail 5 -Wait
.\1.txt 是文件名
ReadCount是指每次发送给管道的文本行数,0代表全部,在当前的场景下选择0效率更高。
这里的Tail参数让Get-Content命令只返回指定结尾行数的文本。这样就避免了大量文本内容驻留在内存内的问题了。
-wait 一直等待监听中
get-content .\1.txt -ReadCount 0 -Tail 5 -Wait