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方法时一些方法报错了,那么就需要用到的概念了,详情见下一篇。

  • 相关阅读:
    poj 3243 Clever Y(BabyStep GiantStep)
    poj 2417 Discrete Logging
    poj 3481 Double Queue
    hdu 4046 Panda
    hdu 2896 病毒侵袭
    poj 1442 Black Box
    hdu 2815 Mod Tree
    hdu 3065 病毒侵袭持续中
    hdu 1576 A/B
    所有控件
  • 原文地址:https://www.cnblogs.com/huskyking/p/6137959.html
Copyright © 2011-2022 走看看