如何在web服务中创建新线程?我需要该线程在Web服务的“主要”上启动,而不是在服务器调用中启动。Java WebService线程创建
我需要它作为工作线程,所以服务器调用会发送消息到线程 - 工作要在BG中完成,并且不会阻塞服务器请求。
我不知道该怎么做
如何在web服务中创建新线程?我需要该线程在Web服务的“主要”上启动,而不是在服务器调用中启动。Java WebService线程创建
我需要它作为工作线程,所以服务器调用会发送消息到线程 - 工作要在BG中完成,并且不会阻塞服务器请求。
我不知道该怎么做
你需要创建一个ThreadPool
,这是一个对象,你可以提交其将被该线程池的线程(S)上执行任务。
制作ThreadPool的最简单方法是使用由Executors类创建的一个。
您可以尝试在您的主类中使用静态初始化程序。
这里我使用一个来创建一个计时器任务,它每隔一小时重新读取我的属性文件,但您几乎可以使用它们进行任何操作,包括创建新线程。
static {
// Read my properties at start-up.
readProperties();
// Start a new timer task to repeat every hour.
int rate = Debug? 60*1000 : 1*60*60*1000;
// Make a daemon scheduled thread to re-read properties.
new Timer("Read properties timer", true).schedule(new TimerTask(){
public void run() {
readProperties();
}
}, rate, rate);
}
这是不是从这个问题不清楚,但如果作者没有创造它自己的实施和使用第三方WS栈,那么我们这里有问题:大多数的实现已经在使用线程池,并在池中的每个线程不断重复使用。在这种情况下,我会考虑将新线程作为不良做法。 – Osw 2012-03-27 19:05:19