Java_13 多线程常用操作
目录
多线程常用操作
@Component
public class ScheduleThread implements Runnable {
protected static final Logger logger = LoggerFactory.getLogger(ScheduleThread.class);
//传参以这种方式
private String ipAddress;
public void setIpAddress(String ipAddress) {
this.ipAddress = ipAddress;
}
@Override
public void run() {
while (true) {
try {
logger.info("=====数据===== " + ipAddress + " ====");
//一直循环操作,sleep(毫秒数)
Thread.sleep(10000);
} catch (Exception e) {
e.printStackTrace();
}
}
}
//这个是30s定时任务
@Scheduled(cron = "*/30 * * * * ?")
public void timeHeart() {
ScheduleThread scheduleThread = new ScheduleThread();
scheduleThread.setIpAddress("192.168.0.1"));
Thread thread = new Thread(scheduleThread);
//调用start方法防止阻塞
thread.start();
}
}
//这个是定时任务配置类,以这种方式可以使多个定时同时进行
@Configuration
public class ScheduleConfig {
@Bean
public TaskScheduler taskScheduler() {
ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
//定时任务数量设置
scheduler.setPoolSize(100);
return scheduler;
}
}