仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 500|回复: 10
打印 上一主题 下一主题

[学习教程] 发布一篇线程转储 - 定名你的线程和检察体系

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:19:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
对于一个大型项目,如果用java来作,可能需要9个月,并且可能需要翻阅10本以上的书,但如果用ruby来作,3个月,3本书就足够了,而.net网页编程也不过3,4本书足以,这就是区别。
固然集成开辟情况(IDE)能够为图形化使用程序供应很好的调试设置,可是它不同意你调试多线程的Java服务器程序。
侥幸的是,有几个工具能够做到,比方日记使用程序接口(API)和Java调试器。开辟职员也能够取得体系的线程转储,它能够在任什么时候间显现出体系形态。
为了失掉体系线程转储,运转服务器程序并键进[Ctrl][]。这会输入一切正在实行的线程。比方:
^Fullthreaddump:
Thread-1"prio=5tid=0x87fe0nid=0x800013b8waitingonmonitor[0..0xbfffe9f8]
"Thread-0"prio=5tid=0xafde0nid=0x72a00runnable[0x173f000..0x173fb48]
atjava.net.PlainSocketImpl.socketAccept(NativeMethod)
atjava.net.PlainSocketImpl.accept(PlainSocketImpl.java:421)
atjava.net.ServerSocket.implAccept(ServerSocket.java:243)
atjava.net.ServerSocket.accept(ServerSocket.java:222)
atcom.generationjava.net.PortListener.run(PortListener.java:38)
atjava.lang.Thread.run(Thread.java:496)
"SignalDispatcher"daemonprio=10tid=0xa5f80nid=0x52af0waitingonmonitor[0..0]
"Finalizer"daemonprio=8tid=0xa46c0nid=0x4d930waitingonmonitor[0x10a8000..0x10a8b48]
atjava.lang.Object.wait(NativeMethod)
atjava.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:108)
atjava.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:123)
atjava.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:162)
"ReferenceHandler"daemonprio=10tid=0xa3b70nid=0x4cca0waitingonmonitor[0x1027000..0x1027b48]
atjava.lang.Object.wait(NativeMethod)
atjava.lang.Object.wait(Object.java:420)
atjava.lang.ref.Reference$ReferenceHandler.run(Reference.java:110)
"VMThread"prio=5tid=0xa2de0nid=0x4ca20runnable
"VMPeriodicTaskThread"prio=10tid=0xa56b0nid=0x52890waitingonmonitor
前面四个线程都是尺度线程,而别的的与特定运转的服务器程序相干。这两个线程被定名为Thread-1和Thread-0。改动这些线程的称号,创立时挪用:
Threadth=newThread(runnable,"Server");
替换以下的:
Threadth=newThread(runnable);
别的,假如挪用java.lang.Thread的setName(String)办法,你能够定名你的线程并在改动的输入中发觉到Thread-0就是服务器程序
"Server"prio=5tid=0xafde0nid=0x72a00runnable[0x173f000..0x173fb48]
先前的Thread-1线程如今被定名为Thread-0。
经由过程定名线程并取得线程转储,开辟职员能够窥窃Java假造机(JVM)的形态。想要更进一步,开辟职员必需探求Java调试器。

微软什么都提供了。你可以试想一下,如果你是新手,你是希望你点一下按钮程序就能运行那,还是想自己一点一点的组织结构,然后打包发部,调错再打包......
灵魂腐蚀 该用户已被删除
沙发
发表于 2015-1-20 20:27:28 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
莫相离 该用户已被删除
板凳
发表于 2015-1-29 20:52:12 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
谁可相欹 该用户已被删除
地板
发表于 2015-1-30 22:54:37 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
金色的骷髅 该用户已被删除
5#
发表于 2015-2-2 21:54:46 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
变相怪杰 该用户已被删除
6#
发表于 2015-2-7 02:27:11 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
海妖 该用户已被删除
7#
发表于 2015-2-19 21:07:00 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
兰色精灵 该用户已被删除
8#
发表于 2015-3-6 15:23:05 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
小妖女 该用户已被删除
9#
发表于 2015-3-8 04:42:48 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
只想知道 该用户已被删除
10#
发表于 2015-3-11 15:49:30 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
简单生活 该用户已被删除
11#
发表于 2015-3-26 18:58:25 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 06:42

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表