集成开发环境(IDE)能给图形界面应用程序提供一个很好的调试工具,但是它却不能调试一个多线程的Java服务器程序。 幸运的是,有几种工具,例如logging应用程序接口(API)或者Java Debugger可以用来调试Java服务器程序。开发者还能使用一个系统的线程堆在任何时候观察系统的状态。
运行服务器,然后按[ctrl] [/],会运行一个系统线程堆,这样将输出当前运行的所有线程,例如: ^\Full thread dump: Thread-1" prio=5 tid=0x87fe0 nid=0x800013b8 waiting on monitor [0。
。0xbfffe9f8] "Thread-0" prio=5 tid=0xafde0 nid=0x72a00 runnable [0x173f000。。0x173fb48] at java。net。PlainSocketImpl。socketAccept(Native Method) at java。
net。PlainSocketImpl。accept(PlainSocketImpl。java:421) at java。net。ServerSocket。implAccept(ServerSocket。java:243) at java。net。
ServerSocket。accept(ServerSocket。java:222) at com。generationjava。net。PortListener。run(PortListener。java:38) at java。lang。
Thread。run(Thread。java:496) "Signal Dispatcher" daemon prio=10 tid=0xa5f80 nid=0x52af0 waiting on monitor [0。。0] "Finalizer" daemon prio=8 tid=0xa46c0 nid=0x4d930 waiting on monitor [0x10a8000。
。0x10a8b48] at java。lang。Object。wait(Native Method) at java。lang。ref。ReferenceQueue。remove(ReferenceQueue。java:108) at java。
lang。ref。ReferenceQueue。remove(ReferenceQueue。java:123) at java。lang。ref。Finalizer$FinalizerThread。run(Finalizer。java:162) "Reference Handler" daemon prio=10 tid=0xa3b70 nid=0x4cca0 waiting on monitor [0x1027000。
。0x1027b48] at java。lang。Object。wait(Native Method) at java。lang。Object。wait(Object。java:420) at java。lang。ref。Reference$ReferenceHandler。
run(Reference。java:110) "VM Thread" prio=5 tid=0xa2de0 nid=0x4ca20 runnable "VM Periodic Task Thread" prio=10 tid=0xa56b0 nid=0x52890 waiting on monitor 后面的四个线程是标准线程,而其他的则跟运行的服务器程序有关。
这两个线程被命名为Thread-1和Thread-0,如果用Thread th = new Thread(runnable,"Server")代替Thread th = new Thread(runnable)去创建进程,你就可以命名自己要创建的线程。
另外,如果你调用java。lang。Thread的setName(String)方法,你也能命名你的线程,并且可以很容易从线程堆的输出中发现原来的Thread-0是服务器程序。 "Server" prio=5 tid=0xafde0 nid=0x72a00 runnable [0x173f000。
。0x173fb48] 而原来的Thread-1线程现在变成了Thread-0。 通过命名线程和取得线程堆,开发者就能看到Java虚拟机(JVM)的内部状态。如果想得到更多信息的话,你就得去研究Java Debugger了。
完成 丢弃。
阿姆斯特丹运河音乐节 文化基本资料 举办时间: 每年8月15日到8月19日 举办周期: 每年举办一次 文化概况 阿姆斯特丹运河音乐节,总是使阿姆斯特丹市从一座幽静的...
一般来说,如果程序出错,那么在浏览器内会返回给用户一个友好的错误提示,统一称之为服务器500错误。解决的方法就是您必须在友好错误提示”的复选框,请取消该复选框,这样您可以获得正确的错误提示、...
感谢邀请! 这种问题,个人给你的建议是: 1.如果你懂IPSEC来做一下端口限制,比如只允许访问服务器指定的1433端口,以及软件必须的端口和你远程的端口外,其他都不允许访问。 2.使用的SQL版本尽...
今天给各位分享聊城做企业网站的知识,其中也会对聊城做企业网站的公司进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!文章目录列表: 1、聊城网站制作哪家最好,谁做的网站好优化,网站...
从汽车南站 - 公交车站 到阳澄湖服务区 - 其它 方案1:28.3公里,168路-128路 乘:168路(嘉宝花园-星湖首末站) 上:汽车南站 (经过15站) 下:华莲村(步行约350米) 换:12...
笔者经营switch数字版游戏,对于这种情况还是很有发言权的。 众所周知,ps4和switch港版的服务器架设在香港,我们使用的是香港的服务器。由于兼容性问题,下载速度可以用龟速来形容。 国行版的ps...
这个非常简单,telnet、nc和nmap这3个命令就可以轻松实现,下面我简单介绍一下实现过程,感兴趣的朋友可以自己尝试一下: telnet这是基于telnet协议实现的一个远程登录命令,可以直接用于...
不管对企业还是个人来说,数据都是相当重要的,一旦数据丢失或者被窃取,损失都是相当惨重的。还记得今年微盟员工删库事件,市值一下蒸发10多个亿,对于企业来说数据就是企业命根子。一旦我们的项目数据丢失或者被...