读源码时的思考最近在看concurrent包下线程池的源码,当我看到ThreadPoolExecutor类的时候,发现了JDK源码的一个问题。以下是ThreadPoolExecutor类的addWorker方法的代码片段:javabooleanworkerStartedfalse;booleanworkerAddedfalse;Workerwnull;try{wnewWorker(firstTask);finalThreadtw.thread;if(t!null){finalReentrantLockmainLockthis.mainLock;mainLock.lock();try{intrsrunStateOf(ctl.get());if(rs<SHUTDOWN(rsSHUTD...
2022-06-20 09:15:49 4676浏览 0点赞 0回复 0收藏
运行环境以下就是这个示例的运行环境,如果版本号不一样,区别也应该不会很大,可以根据实际情况做相应调整。JDK8springboot2.0.7.RELEASEcatclient3.0.0apolloclient1.3.0去除Apollo对CAT的依赖众所周知,Apollo对CAT是有依赖的,但不是强依赖,而是使用了SPI技术,只有项目里引用了catclient才会生效。目前我们想把CAT客户端配置放在Apollo里,也就是在CAT客户端初始化之前从Apollo读取相应配置,这就形成了循环依赖,所以首...
2022-06-20 09:13:49 4942浏览 0点赞 0回复 0收藏
餐厅的约会餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!”大龄程序员老王老王是一个已经北漂十多年的程序员,岁数大了,加班加不过年轻人,升迁也无望,于是拿着手里...
2022-06-20 09:12:19 4988浏览 0点赞 0回复 0收藏
买买买结算系统一年一度的双十一购物狂欢节就要到了,又到剁手党们开始表演的时刻了。当我们把种草很久的商品放入购物车以后,点击“结算”按钮时,就来到了买买买必不可少的结算页面了。让我们虚拟一个买买买结算系统,为结算页面提供商品、促销、库存等结算信息,就此系统展开如何在SpringBoot项目中集成CAT调用链。买买买结算系统包含以下4个项目:1.结算UI:为前端页面提供结算的基础数据。2.购物车API:获取用户购物车中有...
2022-06-20 09:10:41 6424浏览 0点赞 0回复 0收藏
一、CAT简介CAT(CentralApplicationTracking),是美团点评基于Java开发的一套开源的分布式实时监控系统。美团点评基础架构部希望在基础存储、高性能通信、大规模在线访问、服务治理、实时监控、容器化及集群智能调度等领域提供业界领先的、统一的解决方案,CAT目前在美团点评的产品定位是应用层的统一监控组件,在中间件(RPC、数据库、缓存、MQ等)框架中得到广泛应用,为各业务线提供系统的性能指标、健康状况、实时告警等...
2022-06-20 09:07:23 6054浏览 0点赞 0回复 0收藏
在Java中使用线程池,可以用ThreadPoolExecutor的构造函数直接创建出线程池实例,如何使用参见之前的文章[关于Java线程池构造参数,你该了解这些](https:ost.51cto.composts13916)。不过,在Executors类中,为我们提供了常用线程池的创建方法。接下来我们就来了解常用的四种:newFixedThreadPool首先,看一下这种线程池的创建方法:javapublicstaticExecutorServicenewFixedThreadPool(intnThreads){returnnewThreadPoolExecuto...
2022-06-16 10:20:19 6003浏览 0点赞 0回复 0收藏
在ThreadPoolExecutor类中有4个构造函数,最终调用的是如下函数:javapublicThreadPoolExecutor(intcorePoolSize,intmaximumPoolSize,longkeepAliveTime,TimeUnitunit,BlockingQueueworkQueue,ThreadFactorythreadFactory,RejectedExecutionHandlerhandler)构造函数一共有7个参数,如下:corePoolSize线程池中的核心线程数,当提交一个任务时,线程池创建一个新线程执行任务,直到当前线程数等于corePoolSize;如果当前线程数为...
2022-06-16 10:17:39 5965浏览 0点赞 0回复 0收藏