小编Ben*_*s G的帖子

在java中断一个线程

我发现这个解决方案知道一个线程是否被中断了.

public class OurThread extends Thread(){
    private volatile boolean stop = false;
    public void run(){
        while (!stop) {
             //Do your actions
        }
     }
 }
Run Code Online (Sandbox Code Playgroud)

但是我的run方法只执行一次,所以将insisde放在while循环中是没有意义的.我发现的另一种方法是检查Thread.isInterrupted()标志,然后终止线程.我的run()方法很长,所以我必须检查很多次这种情况使我的代码变脏.

我必须将它应用到四个不同的过程中,所以我试图找到一个更简单,更清洁的方法.我希望是否有类似的东西:

try{//my code}
catch(interrumption)
Run Code Online (Sandbox Code Playgroud)

问题是,由于我的线程是通过使用future.cancel()进行中断的,因此我的run()代码中没有抛出中断,然后我也无法做到这一点.

有什么建议吗?到目前为止,如果线程被取消,我会在代码之间检查很多次.谢谢 :)

java multithreading future interrupt

2
推荐指数
1
解决办法
255
查看次数

使用xml将参数添加到quartz调度程序

我在servlet.xml中有当前作业和触发器

<bean id="actualizacionAsistencias" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    <property name="targetObject" ref="asistenciasManager" />
    <property name="targetMethod" value="run" />
</bean?

<bean id="asistenciasTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    <property name="jobDetail" ref="actualizacionAsistencias" />
    <property name="cronExpression" value="0 1 1 * * ?" />
</bean>
Run Code Online (Sandbox Code Playgroud)

有没有办法添加参数?我需要方法'run'在执行时重新接收'true'(布尔值).

java spring quartz-scheduler

2
推荐指数
1
解决办法
2173
查看次数