英语作文范例线程池参数设置
为了提⾼系统吞吐量和系统响应时间,线程池设置需要根据以下参数配置
hilltoptasks: 每秒的任务数,假设为1000
taskcost:每个任务花费时间,假设为0.1s
isabella
respontime:系统允许容忍的最⼤响应时间,假设为1s
1. corePoolSize = 每秒需要多少个线程处理?rabbit怎么读
threadcount = tasks/(1/taskcost) = tasks * taskcost = 1000 * 0.1 = 100 个线程。corePoolSize设置应该⼤于50,根据80,20原则,如果80%的每秒任务数⼩于800,那么corePoolSize设置为80即可
神探夏洛克第二季32. queueCapacity = (corePoolSize/taskcost)*respontime
katniss计算可得queueCapacity = 80 / 0.1 *1 = 80。意思是队列⾥⾯的线程可以等待1s,超过则需要新开线程来执⾏,切记不能设置为Integer.MAX_VALUE。这样队列会很⼤,线程数只会保持在corePoolSize⼤⼩,当任务剧增时,不能新开线程来执⾏,响应时间会随之剧增。
自学日语教材
3. maxPoolSize = (max(tasks) - queueCapacity)/(1/taskcost)哪家出国留学中介机构好
计算可得 maxPoolSize = (1000 - 80)/10 = 92 (最⼤任务数-队列容量)/每个线程每秒处理能⼒ = 最⼤线程数
4. rejectedExecutionHandler:根据具体情况来定,任务不重要可以丢弃,任务重要则需要利⽤⼀些缓冲机制来处理,keepAliveTime和
allowCoreThreadTimeout采⽤默认通常能满⾜
waybackintolove
以上都是理想值,实际情况下需要根据机器性能来决定,如果在未达到最⼤线程数的情况下机器的cpu load已经满了,则需要通过升级硬件和优化代码,降低taskcost来处理。
>wit