zoukankan      html  css  js  c++  java
  • java线程的使用(Runnable)

    在实际项目开发过程中,线程是经常要用到的,特别是为了不影响项目的运行效果。

    以下就以实际项目中的简单例子来介绍:

    public class SystemRedisInfoController extends implements Runnable {
        
        @RequestMapping(value = "/flushRedis")
        public void deleteAll(HttpServletRequest request, HttpServletResponse response) throws ManagerException{
            //清空左侧树配置、通知缓存
            SystemRedisInfoController imp = new SystemRedisInfoController();
            Thread thread = new Thread(imp);
            thread.start();
        }
        @Override
        public void run() {
            //逐一删除对应的左侧树缓存和通知通告
            List<User> userList = userManager.findAll();
            try {
                Jedis jedis = new Jedis();
                for (User user : userList) {
                    String userId = user.getId();
                    String zcsKey = Finals.JEDIS_ZCS.concat(userId);
                    String tzKey = Finals.JEDIS_TZ.concat(userId);
                    jedis.del(zcsKey.getBytes());
                    jedis.del(tzKey.getBytes());
                }
            } catch (Exception e) {
                System.out.println("缓存未连接!");
            }
        }
    }

    在运行的方法中创建线程,需要该类实现(implement)Runnable接口,然后红色字体部门就是创建线程,通过start方法启动线程,执行run方法。

    run方法是实现接口之后需要写的方法,在这里进行线程中的部分。

    值得注意的是:如果需要传参,可以声明一个全局变量,然后执行方法的时候给全局变量赋值,该全局变量声明为static,在run方法中就可以接收到参数的值了。

    如果以上能够解决就不用考虑线程加锁的问题。如果在执行run方法时一些方法报错了,那么就需要用到的概念了,详情见下一篇。

  • 相关阅读:
    26个高效工作的小技巧 z
    DevExpress控件水印文字提示 z
    c#枚举自定义,用于数据绑定。 z
    WeifenLuo.WinFormsUI.Docking"的使用 z
    解决 winform 界面对不齐 z
    WCF服务通过防火墙怎么设置
    Auto Updating the exe from a network location when application starts z
    怎样学法学?——民法学泰斗王利明教授的演讲 z
    JAVA常见算法题(十八)
    JAVA常见算法题(十七)
  • 原文地址:https://www.cnblogs.com/huskyking/p/6137959.html
Copyright © 2011-2022 走看看