|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。程序一个完全的Java使用程序,一般最少要有一个使用程序的停止点。关于一样平常程序来讲,体系开辟者依据必要和团体的偏好,会在程序停止地位,经由过程增加System.exit(0),或System.out(-1),来停止程序,或不加这些指令,让程序天然运转到停止。
如:以下典范代码- packageuntitled14;/***Thisapplicationistodemohowanapplcationend*/publicclassTest{publicTest(){}publicstaticvoidmain(String[]args){Testtest1=newTest();//.................System.out.println("helloworld");//DosomethingbeforesystemexitSystem.exit(0);//也能够不写这句代码,让程序天然停止。}}
复制代码 关于复杂的使用体系,我们间接能够在System.exit(0)代码实行前,增加必要在使用程序加入前必要完成的事情,如:封闭收集毗连,封闭数据库毗连等。
但是,关于对照庞大的多线程使用,线程运转的形态较庞大,我们就很难意料程序什么时候停止,怎样能在使用程序停止事务到来时,处置我们要做的事情呢?这就用到了Java对使用程序的加入的事务出处置机制。
对以后使用程序对象的取得,Java经由过程Runtime静态办法:Runtime.getRuntime()经由过程Runtime的voidaddShutdownHook(Threadhook)法向Java假造机注册一个shutdown钩子事务,如许一旦程序停止事务到来时,就运转线程hook,我们在实践使用时分,只需将程序必要完成之前做的一些事情间接经由过程线程hook来完成。详细演示代码以下:- /*****************************************************************************本程序仅演示,怎样在Java使用程序中增加体系加入事务处置机制*****************************************************************************/packageuntitled14;importjava.util.*;importjava.io.*;/***Thisapplicationisusedtodemohowtohooktheeventofanapplication*/publicclassUntitled1{publicUntitled1(){doShutDownWork();}/****************************************************************************Thisistherightworkthatwilldobeforethesystemshutdown*这里为了演示,为使用程序的加入增添了一个事务处置,*当使用程序加入时分,将程序加入的日期写进d: .log文件**************************************************************************/privatevoiddoShutDownWork(){Runtime.getRuntime().addShutdownHook(newThread(){publicvoidrun(){try{FileWriterfw=newFileWriter("d: .log");System.out.println("Imgoingtoend");fw.write("theapplicationended!"+(newDate()).toString());fw.close();}catch(IOExceptionex){}}});}/*****************************************************这是程序的出口,仅为演示,办法中的代码可有可无***************************************************/publicstaticvoidmain(String[]args){Untitled1untitled11=newUntitled1();longs=System.currentTimeMillis();for(inti=0;i<1000000000;i++){//在这里增加您必要处置代码}longse=System.currentTimeMillis();System.out.println(se-s);}}
复制代码 在上述程序中,我们能够看到经由过程在程序中增添Runtime.getRuntime().addShutdownHook(newThread())事务监听,捕捉体系加入动静到来,然后,实行我们所必要完成事情,从而使我们的程序更强健!
他们对jsp,servlet,javabean进行封装就是为了展示他们的某个思想,与java的开发并没有必然的关系,也不见得在所以情况下,别人使用起来会简单。 |
|