仓酷云

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

[学习教程] 了解下JAVA的征服Tiger: 线程中的默许非常处置

[复制链接]
因胸联盟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:18:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
但是一些大型开发或者是保密型比较高的项目都会用java,原因有2点,一:java是开源的,不怕别人留后门,偷我工具,.net网页编程就不一样了,保持微软的一向风格,源代码不公开
固然我们不想创立在没法预期时抛出运转时非常的程序,但这类情形仍是会产生——特别是第一次运转庞大程序时。一般是利用默许举动、打印仓库溢出和停止线程的性命来处置这些非常。
从那里发明默许举动?每一个线程都属于一个由java.lang.ThreadGroup类暗示的线程组。望文生义,线程组同意您将线程组合在一同。您多是为了便利而将线程组合,比方,一个线程池中的一切线程都属于组X,而另外一个池的一切线程则属于组Y,大概是为了会见把持而将线程举行组合。组X中的线程无权会见或改动组Y中的线程,除非它们都在统一线程组内(或在一个子组内)。
在Tiger之前,ThreadGroup类供应了一种处置未捕捉非常的办法:ThreadGroup的uncaughtException()办法。假如非常不是ThreadDeath,则将线程的称号和仓库回溯(stackbacktrace)发送到System.err。可是Tiger增加了另外一种办法:Thread.UncaughtExceptionHandler接口。细分ThreadGroup或安装该新接口的完成都同意您变动默许举动。我们将对Tiger之前和以后供应的办法都举行研讨。
利用ThreadGroup的定制举动
产生未捕捉的非常时,默许举动是将仓库溢出打印输入到体系毛病(System.err)中,如清单1中所示。不必要利用任何命令参数来启动程序。
清单1.线程溢出示例
publicclassSimpleDump{
 publicstaticvoidmain(Stringargs[]){
  System.out.println(args[0]);
 }
}
不利用任何参数运转该程序将天生清单2中的输入。只管它不是一个很长的仓库跟踪,但它是一个完全的仓库跟踪。
清单2.默许线程溢出输入
Exceptioninthread"main"java.lang.ArrayIndexOutOfBoundsException:0
    atSimpleDump.main(SimpleDump.java:3)
正如Java平台的很多工具一样,假如不喜好默许举动,您能够对其举行变动。在Java平台的Tiger版之前的版本中,不克不及替换一切线程的默许举动,可是能够创立一个新的ThreadGroup,并变动在该组内创立的任何线程的默许举动。您能够重写uncaughtException(Threadt,Throwablee)办法来定制该举动。然后,当产生未意料的运转时非常时,该线程组内创立的任何线程都将取得新的举动。不外,最好是修复基本成绩,我将供应一个复杂的示例,申明变动默许举动所必须的步骤。清单3展现了将实行代码放进新线程的调剂过的测试程序:
清单3.调剂过的线程溢出示例
publicclassWindowDump{
 publicstaticvoidmain(Stringargs[])throwsException{
  ThreadGroupgroup=newLoggingThreadGroup("Logger");
  newThread(group,"myThread"){
   publicvoidrun(){
    System.out.println(1/0);
   }
  }.start();
 }
}
<p>
Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Oracle收购Sun后Java前途未卜。
蒙在股里 该用户已被删除
沙发
发表于 2015-1-20 19:51:13 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
兰色精灵 该用户已被删除
板凳
发表于 2015-1-29 18:23:49 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
海妖 该用户已被删除
地板
发表于 2015-2-4 06:35:37 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
灵魂腐蚀 该用户已被删除
5#
发表于 2015-2-4 14:51:13 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
愤怒的大鸟 该用户已被删除
6#
发表于 2015-2-10 01:48:38 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
小魔女 该用户已被删除
7#
发表于 2015-2-28 13:48:46 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
金色的骷髅 该用户已被删除
8#
发表于 2015-3-2 13:58:05 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
简单生活 该用户已被删除
9#
发表于 2015-3-3 03:21:31 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
飘飘悠悠 该用户已被删除
10#
发表于 2015-3-8 15:34:37 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
只想知道 该用户已被删除
11#
发表于 2015-3-11 04:05:56 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
莫相离 该用户已被删除
12#
发表于 2015-3-17 20:09:23 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
因胸联盟 该用户已被删除
13#
 楼主| 发表于 2015-3-24 23:35:32 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-9-28 19:26

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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