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

如何优雅的使用和理解线程池 .中“线程是稀缺资源,不能频繁的创建。” #156

Open
JeffreyDai opened this issue Apr 3, 2019 · 6 comments
Labels

Comments

@JeffreyDai
Copy link

“线程是稀缺资源,不能频繁的创建。“
这样描述是不是有点不严谨啊。不应该是“内存”?
个人见解。

@YingshuLu
Copy link

“线程是稀缺资源,不能频繁的创建。“
这样描述是不是有点不严谨啊。不应该是“内存”?
个人见解。

java 线程底层是原生线程, 频繁创建的性能影响: 内存分配/释放 + 调度上下文切换

@crossoverJie
Copy link
Owner

“线程是稀缺资源,不能频繁的创建。“
这样描述是不是有点不严谨啊。不应该是“内存”?
个人见解。

没太懂你的意思?

是想改为内存是稀缺资源,不能频繁的创建?

@JerryFoundation
Copy link

你可以这么理解吧, 线程的创建是消耗资源的, 而线程间的调度需要频繁依赖CPU的切换,Jie大说的不能频繁创建是站在线程池的角度来看的, 如果说创建线程所消耗的资源,在每次使用完后就销毁, 那么下一次使用的时候又得创建,这样造成资源频繁浪费,而且并不是充分利用

@JeffreyDai
Copy link
Author

“线程是稀缺资源,不能频繁的创建。“
这样描述是不是有点不严谨啊。不应该是“内存”?
个人见解。

没太懂你的意思?

是想改为内存是稀缺资源,不能频繁的创建?

是的,内存才是稀缺的,所以要建议不要频繁的去创建线程。

@crossoverJie
Copy link
Owner

是的,内存才是稀缺的,所以要建议不要频繁的去创建线程。

内存确实是稀缺资源,但线程的创建不止是消耗内存而已。

如果这么说的话,那是不是在 Java 里每创建一个对象都要谨慎了,这样 JVM 虚拟机岂不是没啥意义了?

@victor3pt
Copy link

创建一个线程,会调用系统内核的api,系统还要为线程分配其它相关资源,成本很高,应该避免线程直接频繁的创建和销毁。 Jie大说的是线程池回收再使用,线程可控。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants