现在很多招聘JavaWeb开发都有那么一条,
1.熟悉高并发,多线程    但是我基本很少在Web开发中用到什么多线程,当然我是说自己写那些,像servlet,SLSB等这些容器管理不算,实质上servlet,SLSB基本上都是无状态的。反倒是做过一个socket通信的一个小项目大量的应用了线程。   大家在开发Web项目,有用到多线程吗,用的多吗??

解决方案 »

  1.   

    web工程,很少用多线程,不要轻易使用多线程,因为这里涉及到事务控制以及数据连接等很多问题。这些问题都是跟线程相关的。
      

  2.   

    Servlet 容器把这些复杂的事情都做掉了,到你手上就是一个请求作为一个独立的线程。另外,不要认为 new Thread() 后再 start 一下就是多线程程序了。
      

  3.   

    互联网应用在高并发情况下,瓶颈在 IO 上(网络 IO 和磁盘 IO 上),并不在 CPU 上,这时采用传统的多线程技术基本上无济于事。减少数据库磁盘 IO 时间最有效的办法是使用缓存,还可以将数据库弄成 master/slave 的读写分离,分表分库等等。减少网络 IO、静态资源磁盘 IO 有效的办法:响应使用 GZIP 压缩(Web 服务器都能支持)、设置静态资源(图片、JS 文件、CSS 文件、HTML 文件的过期时间),应用在多 IDC 进行部署、使用 DNS 分发至不同的节点,若要加速用户的访问速度,可以使用 CDN 等等。
      

  4.   

        能做到这种程度公司不多啊,一般的web开发相当的没技术含量。一些设计文档拿出来,都是吹什么3层架构,MVC,IOC,AOP,ORM的。了不起的再给弄些个缓存,做一下数据优化。实质上这些都是网上一搜一大把的东西。像多线程这种设计一个高性能的又线程安全确实需要一点技术,而算法这种东西在web开发中基本上碰不到了。而http协议在web开发早已经有servlet了,其他的协议几乎是不用的。虚拟机优化更是少之又少。唉,现在感觉只剩下业务了周而复始的重复,好没意思,高级东西接触不到永远停留在这个层面技术止步不前了。
      

  5.   

    互联网应用在高并发情况下,瓶颈在 IO 上(网络 IO 和磁盘 IO 上),并不在 CPU 上同感。