zoukankan      html  css  js  c++  java
  • 参考Shiro的Session定期验证会话失效的线程池

    Demo

    package com.wjz.executor;
    
    public class ExecutorDemo {
    
        public static void main(String[] args) throws InterruptedException {
            ExecutorScheduler scheduler = new ExecutorScheduler();
            scheduler.execute();
            Thread.sleep(60 * 60 * 1000);
        }
    }

    自定义Runnable,类似于定时任务

    package com.wjz.executor;
    
    import java.util.concurrent.Executors;
    import java.util.concurrent.ScheduledExecutorService;
    import java.util.concurrent.ThreadFactory;
    import java.util.concurrent.TimeUnit;
    import java.util.concurrent.atomic.AtomicInteger;
    
    public class ExecutorScheduler implements Runnable {
    
        private static final String threadNamePrefix = "SessionValidationThread-";
    
        @Override
        public void run() {
            System.out.println(Thread.currentThread().getName() + " 任务调度喽......");
        }
    
        public void execute() {
            // ScheduleExecutorService代表可在指定延迟或周期性执行线程任务的线程池
            ScheduledExecutorService threadPool = Executors
                    // 创建只有一条线程的线程池,支持在指定延迟后执行线程任务
                    .newSingleThreadScheduledExecutor(new ThreadFactory() {
                        private final AtomicInteger count = new AtomicInteger(1);
    
                        public Thread newThread(Runnable r) {
                            Thread thread = new Thread(r);
                            // 后台程序
                            thread.setDaemon(true);
                            thread.setName(threadNamePrefix + count.getAndIncrement());
                            return thread;
                        }
                    });
            // runnable, 初始延迟, 周期间隔, 时间单位
            threadPool.scheduleAtFixedRate(this, 2 * 1000L, 1 * 1000L, TimeUnit.MILLISECONDS);
        }
    
    }
  • 相关阅读:
    玩转 CSS3 3D 技术
    什么是网站劫持?
    html5 播放 rtsp
    display:none和visibility:hidden两者的区别
    css中div透明度有几种方法设置?
    前端有架构吗?
    HTML a标签打开新标签页避免出现安全漏洞,请使用“noopener”
    写给刚入门的前端工程师的前后端交互指南
    为什么会出现CSS前缀?
    cookies和session得一些理解
  • 原文地址:https://www.cnblogs.com/BINGJJFLY/p/9120321.html
Copyright © 2011-2022 走看看