网站怎么让谷歌收录,网页版qq登录入口版qq账号登录界面,如何保护网站域名,怎么让百度收录#xff08;1#xff09;高并发、任务执行时间短的业务#xff0c;线程池线程数可以设置为CPU核数1#xff0c;减少线程上下文的切换 #xff08;2#xff09;并发不高、任务执行时间长的业务要区分开看#xff1a; a#xff09;假如是业务时间长集中在IO操作上…1高并发、任务执行时间短的业务线程池线程数可以设置为CPU核数1减少线程上下文的切换 2并发不高、任务执行时间长的业务要区分开看 a假如是业务时间长集中在IO操作上也就是IO密集型的任务因为IO操作并不占用CPU所以不要让所有的CPU闲下来可以加大线程池中的线程数目让CPU处理更多的业务 b假如是业务时间长集中在计算操作上也就是计算密集型任务这个就没办法了和1一样吧线程池中的线程数设置得少一些减少线程上下文的切换3并发高、业务执行时间长解决这种类型任务的关键不在于线程池而在于整体架构的设计看看这些业务里面某些数据是否能做缓存是第一步增加服务器是第二步至于线程池的设置设置参考2。最后业务执行时间长的问题也可能需要分析一下看看能不能使用中间件对任务进行拆分和解耦 如何来设置 需要根据几个值来决定 tasks 每秒的任务数假设为500~1000 taskcost每个任务花费时间假设为0.1s responsetime系统允许容忍的最大响应时间假设为1s 做几个计算 corePoolSize 每秒需要多少个线程处理 threadcount tasks/(1/taskcost) tasks*taskcout (500~1000)*0.1 50~100 个线程。corePoolSize设置应该大于50 根据8020原则如果80%的每秒任务数小于800那么corePoolSize设置为80即可 queueCapacity (coreSizePool/taskcost)*responsetime 计算可得 queueCapacity 80/0.1*1 80。意思是队列里的线程可以等待1s超过了的需要新开线程来执行 切记不能设置为Integer.MAX_VALUE这样队列会很大线程数只会保持在corePoolSize大小当任务陡增时不能新开线程来执行响应时间会随之陡增。 maxPoolSize (max(tasks)- queueCapacity)/(1/taskcost)最大任务数-队列容量/每个线程每秒处理能力 最大线程数 计算可得 maxPoolSize (1000-80)/10 92 rejectedExecutionHandler根据具体情况来决定任务不重要可丢弃任务重要则要利用一些缓冲机制来处理 keepAliveTime和allowCoreThreadTimeout采用默认通常能满足