tomcat的主线程是有限的,我现在想实现当一个http请求进来后,tomcat的主线程调用
一个子线程去完成这个请求,而主线程去做其它的事。主要是,怎么控制tomcat的线程,z这里假设 没有框架,用原始的servlet来写,怎么做?求大侠给一段简单的代码和解答,谢谢!
就用普通的java多现实方式去实现不行吗?我想的是,写一个类继承了Thread类、实现Runnable接口,调用start方法. 让子线程去处理你的请求
1、首先写一个类
2、继承Thread类
3、然后重写run方法
4、在主线程new出来刚才重写的类,
5、然后变量名后面加上.start();
6、子线程开启成功
其实开启子线程有两种方式,一个是继承Thread类,一个是实现Runable接口。
下面的代码是演示的比较简单的继承Thread类
package com.demo1;
public class MyThread extends Thread {
//继承Thread类重写run方法
@Override
public void run() {
//这里写子线程要执行的代码
System.out.println("子线程执行代码了");
}
}
package com.demo1;
public class Test01 {
public static void main(String[] args) {
MyThread myThread = new MyThread();
myThread.start();//开启子线程,这里和主线程不会相互影响
}
}
你在图表处右击鼠标,选择一下“显示(隐藏)图片工具栏试试”。
//可以直接使用匿名内部类 省去添加类的麻烦
public class Demo {
//这里是主线程
public static void main(String[] args) {
//这里是子线程
Thread newThread = new Thread() {
@Override
public void run() {
//do something..
System.out.print("子线程");
}
};
//开启子线程
newThread.start();;
}
}
你在图表处右击鼠标,选择一下“显示(隐藏)图片工具栏试试
1.新建一个类,实现Runnable接口,逻辑就处理请求;
2.封装一个单例的线程池工具类;
3.tomcat主线程接收到请求后,直接将请求封装成1中类的一个实例,扔给线程池去执行就OK了。
因内网代码管控,代码不能贴。这也是伪异步IO的线程模型。