package com.ruoyi.schedule.plc; import com.ruoyi.schedule.plc.domain.SsjDevice; import org.springframework.stereotype.Component; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; public class PlcRead implements Runnable{ private final Map deviceMap; private volatile boolean running = true; public PlcRead(ConcurrentHashMap deviceMap) { this.deviceMap = deviceMap; } @Override public void run() { while (running && !Thread.currentThread().isInterrupted()) { try { // 模拟PLC读取操作 Thread.sleep(1000); // 模拟睡眠 // TODO: 实际读取PLC设备数据逻辑 } catch (InterruptedException e) { // 捕获中断异常,退出循环 Thread.currentThread().interrupt(); // 重新设置中断标志 break; } } } public void stopReading() { running = false; Thread.currentThread().interrupt(); // 主动中断线程 } }