2

以下のコードが停止runするまで無限に続くかどうか知りたいですか?server

public class Class1()
 {
   public static void main(String args[])
      {
            TimerTask task = new CacheThread();

            Timer timer = new Timer();
            timer.schedule(task, 1000,10000);
      }
  }

ここでは、以下のクラスにあるタスクを呼び出しています。

     package com.verizon.esupport.cache;

     import java.sql.Timestamp;
     import java.util.Date;
     import java.util.HashMap;
     import java.util.TimerTask;


     public class CacheThread extends TimerTask {//implements java.io.Serializable{


 RetrieveHdrFtrContent rhf = RetrieveHdrFtrContent.getSingleInstance();
 HeaderBean hdrbn = HeaderBean.getSingleInstance();

 String header = "";
 String footer= "";
 String sHeader = "";

@Override
public void run() {

    try{
    // TODO Auto-generated method stub
     HashMap headerm = new HashMap();
     HashMap smallHeaderm = new HashMap();
     HashMap footerMapm = new HashMap();

     Date date = new Date();

     header = rhf.headerContent().toString();
    //  headerm.clear();
    //  hdrbn.setLheaderMap(headerm);
        headerm.put("header", header);
        headerm.put("timeStamp", new Timestamp(date.getTime()));
        hdrbn.setLheaderMap(headerm);

        footer = rhf.footerContent().toString();
        footerMapm.clear();
        hdrbn.setLfooterMap(footerMapm);
        footerMapm.put("footer", footer);
        footerMapm.put("timeStamp", new Timestamp(date.getTime()));
        hdrbn.setLfooterMap(footerMapm);

        sHeader = rhf.smallHeader().toString();
        smallHeaderm.clear();
        hdrbn.setLsmallHeaderMap(smallHeaderm);
        smallHeaderm.put("header", sHeader);
        smallHeaderm.put("timeStamp", new Timestamp(date.getTime()));
        hdrbn.setLsmallHeaderMap(smallHeaderm);

        System.out.println("raising exception :: "+(1/0));

    }
    catch(Exception e)
    {
        e.printStackTrace();
        System.out.println("pls continue the task");
    }
}

}

これは が停止taskするまで実行されますか? serverまたexception、1 つのタスクで何かが発生した場合は、エグゼキューstopターが引き続き次のタスクを実行しますか? 誰か答えてくれませんか..

4

2 に答える 2

0

それは永遠に実行されます。すべての例外をキャッチするため、すべてのタスクの実行が正常に終了します。

もちろん、これはプログラムが無限に正しく動作することを保証するものではありません。なぜなら、あなたが自分で行うRetrieveHdrFtrContentことには副作用があるかもしれないからです (たとえば、メモリリークなど)。

于 2013-08-14T07:22:56.000 に答える