NutzCN Logo
问答 LCacheManager为什么要继承runnable,什么时候初始话的呢
发布于 2267天前 作者 zp8821138 1436 次浏览 复制 上一个帖子 下一个帖子
标签:

RT,为啥要用多线程

8 回复

实现Runnable不等于多线程.

是个类都能实现接口的啦, 是否多线程跟是否Runnable没有必然联系

那为啥要这样写。。我debug的时候发现调用了run方法。没看到是哪个调用的。

写多了吧😊

   public void run() {
        int count = 1;
        while (running && (jedisAgent == null || !jedisAgent.isReady())) {
            Lang.quiteSleep(100);
        }
        log.info("JedisAgent is Ready ...");
        while (running) {
            try {
                log.debug("psubscribe " + PREFIX + "*");
                jedis().psubscribe(pubSub, PREFIX + "*");
            }
            catch (Exception e) {
                if (!running)
                    break;
                log.debug("psubscribe fail, retry after 3 seconds", e);
                Lang.quiteSleep(count * 1000);
            }
        }
    }

run里面写了这么多东西 。。你告诉我写多了。。不写这个怎么发布订阅。。。

哦,想起来了,开了个线程监听更新,因为jedis的订阅是阻塞的,搜new Thread代码吧

   public void setJedisAgent(JedisAgent jedisAgent) {
        this.jedisAgent = jedisAgent;
        t = new Thread(this, "lcache.pubsub");
        t.start();
    }

这里?

添加回复
请先登陆
回到顶部