文章列表
在java中要想实现多线程,有两种手段,一种是继承Thread类,另外一种是实现Runable接口。
1、继承Thread:
类名 extend Thread{
public void run(){
// other code…
}
public static void main(String[] args) {
类名 t = new 类名();
t.start();
}
}
2、通过实现Runnable接口:
类名 implements Runnable{
public void run(){
// other cod ...
什么是ThreadLocal
ThreadLocal是让各个线程拥有独立的对象,互不干扰。
ThreadLocal为解决多线程程序的并发问题提供了一种新的思路
ThreadLocal的接口方法
void set(Object value) 设置当前线程局部变量的值
public Object get() 获取当前线程局部变量的值
public void remove()将当前线程局部变量的值删除
protected Object initialValue()返回该线程局部变量的初始值,该方法是一个protected的方法,显然是为了让子类覆盖而设计的。这个方法是一个延迟调用方法,在线程第1 ...
希望自己能养成写东西的习惯,好记性不如烂笔头嘛
关于ThreadLocal
Struts1与Struts2的区别,它们常用到哪几个类, 以及工作流程
Struts工作流程:
struts1:
发布Struts Web服务时,根据web.xml初始化ActionServlet,ActionContext等内容.
在接到一个HttpRequest请求后,ActionServlet 根据struts-config.xml中的配置内容,将请求的参数传到对应的Formbean中,并设置session.然后根据请求中的Action参数,在struts-config.xml中查找指定的Action,并调用此Action来处理请求.根据Action的处理结果,会返回一个forward变 ...
1.Spring MVC 所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求进行真正的处理工作。
2.DispatcherServlet查询一个或多个handlerMapping,找到处理请求的controller
3.DispatcherServlet请求提交到目标controller
4.controller进行业务逻辑处理后,会返回一个ModelAndView
5.Dispatcher查询一个或多大视图解析器,找到ModelAndView对象指定的视图对象
6.视图对象负责渲染返回客户端
1.在web应用启动时,加载并初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各个配置对象中。
2.当ActionServlet接收到一个客户请求时,首先检索和用户请求相匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效信息。
3.如ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中。
4.根据配置信息决定是否需要表单验证。如果需要验证,就调用ActionForm的Validate()方法。如果ActionForm ...