新手,刚开始学习,我现在把eclipse中的每个工程export一个war包,然后放到服务器上的tomcat的指定webapps文件夹,但是我不理解,看了java代码中并没有起线程,两个问题:1. tomcat是种web容器,所谓web容器,说白了就是提供了一种从浏览器到服务器之间的通信机制,如传递request消息等2.以前学纯c的,我的每个模块都会创建一个线程(因为需要实时维护一个机制),而上述一个web app部署到cat里后,到底有没有转化为一个线程,如果没转化,那就说明web应用没有时刻运行的必要;我觉得应该是有转化的,只是不知道是什么把cat中的war包转化为一个时刻在跑的线程? 并且感觉jsp页面、javabean、数据库存储操作 都不需要实施操作,到底是哪各环节需要线程呢?谢谢大家给我指点迷津。。

解决方案 »

  1.   

    Tomcat应用中的线程都是由Tomcat容器管理的。Tomcat有实现了线程池。他会创建好每个模块的线程交由线程池去管理。Tomcat根据客户端的请求字符决定调用哪个线程,然后到线程池取取得相应的线程。
      

  2.   


    3楼的意思我有如下的理解:1.一个线程对应一种web应用(一个war包):
    即Tomcat会为每一个放到其指定的webapps文件夹中的war包创建一个线程,该线程一直在服务器上的Tomcat线程池里跑,而cat根据客户端的请求来发送相应的消息给对应的线程进行处理?
    2.一个线程对应一个收到一次用户请求而产生的一次web服务:
    即webapps文件夹中的war包只是在服务器上的一些服务或称为web应用,而Tomcat会为每一个用户的请求创建一个severlet线程,再有该severlet线程来调用war包中的应用来进行处理,然后severlet线程会将处理结果通过Tomcat返回到客户端请大家给小弟指点一下,哪个理解是对的或都不对,谢谢啦,详细一点的最好。
      

  3.   

    http://wenku.baidu.com/view/e8e17b17866fb84ae45c8d90.html
      

  4.   

    文章中的severlet容器指得就是web容器吗?
      

  5.   

    要考虑线程安全就使用同步块Synchronized吗 感觉类似信号量操作