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;
    }
}

posted @ 2021-11-27 23:16  睡个好觉"  阅读(30)  评论(0)    收藏  举报