在Java中,当线程中断时,可以通过以下步骤停止从API获取数据:
以下是一个示例代码:
public class DataFetcher implements Runnable {
private volatile boolean isRunning = true;
@Override
public void run() {
while (isRunning) {
// 获取数据的逻辑
try {
// 模拟从API获取数据的操作
fetchDataFromAPI();
} catch (InterruptedException e) {
// 处理线程中断异常
isRunning = false;
Thread.currentThread().interrupt();
}
}
}
private void fetchDataFromAPI() throws InterruptedException {
// 从API获取数据的具体实现
// 如果获取数据的过程中发生阻塞,可以在此处检查线程是否被中断,并抛出InterruptedException异常
}
public void stopFetching() {
isRunning = false;
}
}
在上述示例代码中,通过设置一个布尔变量isRunning来控制循环是否继续执行。当线程被中断时,isRunning被设置为false,从而停止循环。同时,在catch块中调用Thread.currentThread().interrupt()方法重新中断线程,以便在调用线程中处理中断情况。
对于推荐的腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体品牌商,建议参考腾讯云的文档和官方网站,查找与Java开发相关的云计算产品和服务。
领取专属 10元无门槛券
手把手带您无忧上云