目录
记一次使用线程池的坑
/      

记一次使用线程池的坑

写一个异步接口,前端没有设置间隔时间,一直刷请求,由于后台每次请求去redis查询是否有内容,如果没有,单独使用一个线程去查询数据;

因为这里,前端一直刷请求,导致后端的线程池一直在提交任务,撑爆了线程池,阻塞队列也满了,后续请求就废掉了;

使用 锁 暂时解决,还需深入了解下;

private final Lock lock = new ReentrantLock();

public void test() {
try {
                if (lock.tryLock(10L, TimeUnit.SECONDS)) {
                    try {
                        xxxxxx
                    } finally {
                        lock.unlock();
                    }
                } else {
                    // 获取不到锁
                    // 处理其他
                    return ;
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
}

标题:记一次使用线程池的坑
作者:gitsilence
地址:http://blog.lacknb.cn/articles/2021/11/15/1636984790615.html