某程序包含下面的一段代码(被我注释的部分),在eclipse中运行,每次都不能自动停止,需要手动去停止。后来我修改了这个函数(下面的代码没有被注释的部分),不使用多线程,于是程序可以自动停止,请问为什么?我想使用多线程,怎么可以使其自动停止呢?
/*public void send(final EmailInfo emailInfo) {
this.theadPool.execute(new Runnable() {
public void run() {
EmailContext emailContext = new EmailContext();
emailContext.setEmailInfo(emailInfo);
doBefore(emailContext);
try {
Message msg = buildEmailMessage(emailInfo);
Transport.send(msg);
doAfter(emailContext);
} catch (Exception e) {
emailContext.setThrowable(e);
doAfterThrowable(emailContext);
}
}
});
}*/
public void send(final EmailInfo emailInfo) {
EmailContext emailContext = new EmailContext();
emailContext.setEmailInfo(emailInfo);
doBefore(emailContext);
try {
Message msg = buildEmailMessage(emailInfo);
Transport.send(msg);
doAfter(emailContext);
} catch (Exception e) {
emailContext.setThrowable(e);
doAfterThrowable(emailContext);
}
}