🔥🔥🔥轻量级动态线程池,内置监控告警功能,集成三方中间件线程池管理,基于主流配置中心(已支持Nacos、Apollo,Zookeeper、Consul、Etcd,可通过SPI自定义实现)。Lightweight dynamic threadpool, with monitoring and alarming functions, base on popular config centers (already support Nacos、Apollo、Zookeeper、Consul, can be customized through SPI).
issue:#191 VariableLinkedBlockingQueue中的take、poll方法优化 原VariableLinkedBlockingQueue中take、poll方法代码:
修改后take、poll方法代码:
原因:
c
的含义是:在取出元素之前队列中的元素数量。参考代码:c = count.getAndDecrement();
c == capacity
的含义是:如果取出元素之前,元素数量等于队列容量,那么在取出元素之后会有一个空位,则可以通知等待put操作的线程插入元素。c > capacity
的含义是:如果取出元素之前,元素数量大于队列容量,那么在取出元素之后依然没有空位,如果此时通知等待put操作的线程,则put操作依然失败。参考代码:while (count.get() >= capacity) {notFull.await();}
优化: