</pre><p>内部线程</p><p>线程调用</p><p><pre name="code" class="java">new SenderResumeThread(jmsBroker).start();
内部线程类实现
//发送端修复线程
class SenderResumeThread extends Thread{
private JmsBroker jmsBroker;
public SenderResumeThread(JmsBroker jmsBroker){
this.jmsBroker = jmsBroker;
}
@Override
public void run() {
while(true){
try{
jmsBroker.getJmsTemplate().browse(new BrowserCallback() {
public Object doInJms(Session arg0, QueueBrowser arg1) throws JMSException {
arg1.getQueue();
return null;
}
});
synchronized (jmsBroker) {
jmsBroker.setNormalWork(true);
}
ActiveMQConnectionFactory acf = (ActiveMQConnectionFactory) jmsBroker.getJmsFactory().getConnectionFactory();
logger.info("已修复JMS Broker "+acf.getBrokerURL()+" , 已经加入集群");
break;
}catch(Exception e){
synchronized (jmsBroker) {
try{jmsBroker.wait(1000L*10);}catch(Exception e2){}
}
}
}
}
}
第二种写法
@Override
public BaseOutputDTO getPointsByInfoFill(
final ProfileSelfFullChangeInputDTO inputDTO) {
Thread t = new Thread(new Runnable() {
public void run() {
try {
} catch (Exception e) {
logger.error("会员信息完善送积分时发生未知错误,异常信息: {}", e.getMessage(), e);
throw new MemberServiceException(ErrorCode.DATABASE_ERROR.getCode(), ErrorCode.DATABASE_ERROR.getMsg(), e);
}
}
}, "ctrl-thread");
t.start();
return new BaseOutputDTO();
}