线程池七大核心参数

记得有一次在一家小餐馆吃饭,点了一碗牛肉面。
富家女很聪明。
当我看到自己碗里的面条只剩下汤底时,我立即走过来心想:“兄弟,面条还不够吗?要不要再加点?”我心想,一碗面里还剩下这么多汤汁。
所以我说:“不,我已经很饱了。
”老板却笑着说:“好吧,我们只要面条汤,不够的话给我打电话。
”这没什么大不了的,但它让你意识到有时候做事要温柔,不仅要保持热情,还要自由。

比如对于线程池,参数设置就关心这个程度。
太多的核心线程会占用机器资源。
如果太低,高峰期可能无法处理作业。
最大行数必须根据实际情况确定。
忙的时候不要聚集太多人。
否则机器太忙,人也累。
线程的生存时间就像人类一样。
太短则效果较差,太长则浪费资源。
工作队列就像一个仓库;您必须选择合适的存储方法。
确定优先级就像确定工作的优先级一样。
什么是重要的?我们需要知道什么是重要的。
拒绝策略就像顾客太多时;服务员无论是请人还是拒绝服务都必须遵守纪律。
最后,棉厂要有自己的培训方法,相当于培训新人。

但是等等,我突然想到,这些参数设置不就是为了更好的性能吗?所以当我们做任何事的时候,我们可以研究它;做到适中、适中;能否在追求效率的同时也考虑资源的合理利用?

线程池七大核心参数

今天早上等车,车站人不多,只有两三个人。
看着时间临近,我突然想到,如果线程池里只有两个主线程,任务像饺子一样扔给我,非主线程是不是也要疯狂扩容呢?在等车的时候,我又想:最大线程数多少合适?如果设置太小,任务多时就会出现队列;如果设置太大,闲置的话就浪费了。
等等,还有一件事,我应该选择什么样的尾巴?我应该直接使用LinkedBlockingQueue还是ArrayBlockingQueue?前者似乎有很高的延迟,后者似乎有大小限制。
公交车这个时候到了。
赶紧上车。
公共汽车上有很多人。
我突然想到,如果拒绝策略使用DiscardOldest,是不是意味着第一个任务可能永远没有机会运行?等等,一位新乘客上车了。
线程池将如何处理它正在执行的任务?