在Servlet的init方法中创建线程

 servlet代码如下:

package com.weichat.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

//测试执行线程的类
public class TestRunThreadServlet extends HttpServlet implements Runnable{
	
	//init servlet
	public void init() throws ServletException {
		System.out.println("开始init...");
		Thread thread = new Thread(new TestRunThreadServlet());
		thread.start();
	}
	//业务类
	public void threadMethod(){
		System.out.println("start thread");
		try {
			System.out.println("线程开始休眠");	
			Thread.sleep(1000*3);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		System.out.println("本次执行完毕");
	}
	@Override
	public void run() {
		while(true){
			threadMethod();
		}
	}
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("come in post");
		
		System.out.println("go out post");
	}
}

web.xml中添加servlet注册

 	<servlet>  
        <servlet-name>TestRunThreadServlet </servlet-name>  
        <display-name>TestRunThreadServlet </display-name>  
        <servlet-class>com.hseact.fecp.servlet.TestRunThreadServlet </servlet-class>  
        <load-on-startup>1</load-on-startup>  
	</servlet>  

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏日常分享

Struts2+DAO层实现实例03——添加监听器跟踪用户行为

  同时,Action中获取Application,Session,request的方法(在此只列出一种)更多方法

593
来自专栏JAVA高级架构

Spring 知识点提炼

1. Spring框架的作用 轻量:Spring是轻量级的,基本的版本大小为2MB 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,...

3559
来自专栏微信公众号:Java团长

Spring知识点提炼

Sping的容器可以分为两种类型 1. BeanFactory:(org.springframework.beans.factory.BeanFactory接...

932
来自专栏大闲人柴毛毛

Java并发编程的艺术(四)——线程的状态

线程的状态 初始态:NEW 创建一个Thread对象,但还未调用start()启动线程时,线程处于初始态。 运行态:RUNNABLE 在Java中,运行态包括...

40911
来自专栏Google Dart

简单的Spring MVC 程序 原

342
来自专栏行者常至

(08)通过和 ServletAPI 耦合的方式获取 WEB 资源

441
来自专栏光变

SpringMVC 异步提交表单数据

722
来自专栏软件工程师成长笔记

spring boot--Deferred方式实现异步调用,提高系统的吞吐量

在我们的实际生产中,常常会遇到下面的这种情况,某个请求非常耗时(大约5s返回),当大量的访问该请求的时候,再请求其他服务时,会造成没有连接使用的情况,造成这种现...

372
来自专栏闵开慧

struts2中action如何获取jsp页面参数

1. ActionContext 在Struts2开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在Action里直接获取请求(Reques...

34115
来自专栏Java开发者杂谈

线程间通信

  如果一个多线程程序中每个线程处理的资源没有交集,没有依赖关系那么这是一个完美的处理状态。你不用去考虑临界区域(critical section),不用担心存...

3399

扫描关注云+社区