如何用SingleThreadModel解决多线程安全问题

Posted mark-to-win

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用SingleThreadModel解决多线程安全问题相关的知识,希望对你有一定的参考价值。

2.用SingleThreadModel解决多线程安全问题:(视频下载) (全部书籍)

前 面介绍的都是普通的Servlet。对于每一个用户请求,那些Servlet都会用线程的方式给予应答。这样比较节省系统的资源。Sun公司也给出了另外 一种方法,就是这节要介绍的SingleThreadModel的方法。当implement这个接口以后,你的Servlet就变成了另外一种模式工 作。即,每一个新用户的请求,都会生成一个新的Servlet实例来应答。这种方法有两个方面的弊病。一是性能太差,最后会把机器拖累死。还有一条就是有 时解决不了实际问题。每个servlet类实例都有自己独立的变量。如果我们的本意就是想让客户线程之间进行这些变量的交流。这种方法就无法做到。就像还 有人建议的,用局部变量来代替类变量一样,有时也解决不了实际当中的算法问题。因为我们有时就需要用一个类似类变量一样的东西,来控制全局。即使这种方法这不好,那不好,现实中很多很多工程师也说不好。我还是给出了例子,让大家看看结果。

例:2.2.1

package com;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.SingleThreadModel;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class ServletHello1 extends HttpServlet implements SingleThreadModel{
    int bookNum=20;

详情请见:http://www.mark-to-win.com/index.html?content=Jsp/jspUrl.html&chapter=Jsp/jsp2_web.html#SingleThreadModelSolution











以上是关于如何用SingleThreadModel解决多线程安全问题的主要内容,如果未能解决你的问题,请参考以下文章

看我如何用多线程,帮助运营小姐姐解决数据校对系统变慢!

Delphi 如何用多线程进行数据采集

在linux环境中,如何实现多线程中使用多个定时器,POSIX定时器可以吗,如何用?

如何用c++builder 编写多线程

Day794.如何用协程来优化多线程业务 -Java 性能调优实战

socket如何用多线程实现同时能接收和发送消息