美好的一天开始了,码农生活继续,今天唠一唠如何实现方法中断,解决思路呢就是将要中断的方法在线程中执行,线程的执行可操控性高,可以中断线程,睡眠线程等,废话不多说,先上Demo.
package com.shengtianyizi;
import java.util.concurrent.*;
/**
* ClassName MethodExecuteInterruptDemo
* Package com.shengtianyizi
* Description 实现方法执行中断,利用线程池futch来实现
*
* @author cyf
* @date 2020/8/28 10:20
*/
public class MethodExecuteInterruptDemo {
public static void main(String[] args) {
ExecutorService executorService = Executors.newFixedThreadPool(10);
Future<Boolean> submit = executorService.submit(new Callable<Boolean>() {
@Override
public Boolean call() throws Exception {
//执行业务
return doSomething();
}
});
Boolean flag = false;
try {
//等待三秒结果响应如果实现,则抛出超时异常
flag = submit.get(3, TimeUnit.SECONDS);
System.out.println("结果为: " + flag);
} catch (Exception e) {
e.printStackTrace();
System.out.println("异常结果为: " + flag);
} finally {
executorService.shutdown();
}
}
private static boolean doSomething() throws InterruptedException {
System.out.println("开始睡眠");
Thread.sleep(2000);
System.out.println("结束睡眠");
return true;
}
}
在这里自己可以封装一个工具类,任意方法都可以做这个中断操作,我这里就不演示了,利用Future的特性,等待线程响应正好可以满足我们的需求.
下次我们讲解一下多线程.(๑′ᴗ‵๑)
版权声明:本文为qq_36872046原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。