Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

《Java 线程池最佳实践 》5.正确配置线程池参数的讨论 #1737

Closed
shanjunwei opened this issue May 29, 2022 · 1 comment
Closed
Labels
perfect content 内容完善

Comments

@shanjunwei
Copy link

shanjunwei commented May 29, 2022

《Java 线程池最佳实践 》5.正确配置线程池参数
关于IO密集型参数配置 2N的计算方式比较模糊,主要由于网上和书上没有统一权威的答案。

2N可能可以, 更严谨的计算的方法应该为
最佳线程数= CPU核数∗[1+(I/O耗时/CPU耗时)]

注意公式中 CPU核数应该为逻辑核数,也就是cpu支持的并行线程数。
公式很好理解,I/O耗时/CPU耗时这种算法,cpu的时间片利用率会达到100%,多出1的原因和cpu密集型同理为了防止线程偶尔失效。

@Snailclimb
Copy link
Owner

《Java 线程池最佳实践 》5.正确配置线程池参数 关于IO密集型参数配置 2N的计算方式比较模糊,主要由于网上和书上没有统一权威的答案。

2N可能可以,但是严格的计算的方法应该为 最佳线程数= CPU核数∗[1+(I/O耗时/CPU耗时)]

注意公式中 CPU核数应该为逻辑核数,也就是cpu支持的并发线程数。 公式很好理解,I/O耗时/CPU耗时这种算法,cpu的时间片会达到100%,多出1的原因和cpu密集型同理为了防止线程偶尔失效。

很不错的思路啊👍

@Snailclimb Snailclimb added the perfect content 内容完善 label Jul 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
perfect content 内容完善
Projects
None yet
Development

No branches or pull requests

2 participants