随笔-4  评论-15  文章-0  trackbacks-0
  2009年4月24日

此时程序中最多有几个存活的线程,个人认为应该是4个,怎么就是看不到是4个的结果呢?
package Test;

public class Testthread{
     public static void main(String[] args){

      //测定当前活动的线程数目 肯定有一个主线程在运行
      System.out.println("=========header========"+Thread.activeCount());
      ThreadTest tt=new ThreadTest();  
      RunTest rt=new RunTest();
//在下面新建线程里被启动

      new Thread(rt).start();      //新建立的一个线程 启动
      tt.start();                        //已经建立的线程 启动
      System.out.println("===========footer======"+Thread.activeCount());
 }
}
class ThreadTest extends Thread{
 public void run(){
  System.out.println("==========I'm over thread=========");
 }
}

class RunTest implements Runnable{
 public void run(){
  System.out.println("==========I'm over runnable==========");
 }
}


打印结果:
第一类结果 (次序有时不同)
=========header========1
===========footer======3
==========I'm over thread=========
==========I'm over runnable==========

第二类结果
=========header========1
==========I'm over runnable==========
===========footer======2
==========I'm over thread=========


posted @ 2009-04-24 15:04 王业平 阅读(1145) | 评论 (6)编辑 收藏
Servlet的生命周期:

(1)装载Servlet。这项操作一般是动态执行的。然而,Server通常会提供一个管理的选项,用于在Server启动时强制装载和初始化特定的Servlet;

(2)Server创建一个Servlet的实例;

(3)Server调用Servlet的init()方法;

(4)一个客户端的请求到达Server;

(5)Server创建一个请求对象;

(6)Server创建一个响应对象;

(7)Server激活Servlet的service()方法,传递请求和响应对象作为参数;

(8)service()方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息;

(10)service()方法使用响应对象的方法,将响应传回Server、最终到达客户端。

service()方法可能激活其它方法以处理请求,如doGet()或doPost()或程序员自己开发的新的方法;

对于更多的客户端请求,Server创建新的请求和响应对象,仍然激活此Servlet的service()方法,将这两个对象作为参数传递给它。如此重复以上的循环,但无需再次调用init()方法。一般Servlet只初始化一次;

当Server不再需要Servlet时,Server调用Servlet的Destroy()方法。
posted @ 2009-04-24 10:13 王业平 阅读(1194) | 评论 (2)编辑 收藏