Java 等待线程的开销是多少?
我正在使用android中的Volley库进行Http通信。默认情况下,volley库保留了4个线程,这些线程从BlockingQueue获取http“请求”对象(请求对象包含所有用于发出http请求的详细信息,如url、http方法、要发布的数据等),并同时发出http请求。当我分析我的应用程序需求时,只有不到10%的时间我会一次使用全部4个线程,其余时间我会使用该线程池中的1到2个线程。因此,实际上有2到3个线程几乎90%的时间处于wait()模式 我的问题是, 1) 处于wait()模式的线程的开销是多少?它是否消耗大量的cpu周期?这是一个好主意,让我所有的线程等待 我假设,由于等待线程将持续检查循环中的监视器/锁(内部实现)以唤醒,因此维护等待线程可能会消耗大量cpu周期。如果我错了,请纠正我 谢谢Java 等待线程的开销是多少?,java,android,multithreading,threadpool,android-volley,Java,Android,Multithreading,Threadpool,Android Volley,我正在使用android中的Volley库进行Http通信。默认情况下,volley库保留了4个线程,这些线程从BlockingQueue获取http“请求”对象(请求对象包含所有用于发出http请求的详细信息,如url、http方法、要发布的数据等),并同时发出http请求。当我分析我的应用程序需求时,只有不到10%的时间我会一次使用全部4个线程,其余时间我会使用该线程池中的1到2个线程。因此,实际上有2到3个线程几乎90%的时间处于wait()模式 我的问题是, 1) 处于wait()模式的
wait()
/notify()
这样的方法是本机的,这意味着它们的实现依赖于JVM。所以,对于热点JVM,您可以查看它的源代码(用C++/编写,带有一点汇编程序)
但是你真的需要这个吗?为什么不信任JVM文档?它根本不消耗任何CPU周期,2-3不是“所有这些”,而是一个非常小的数字。你关于投票的假设是错误的。谢谢。只是想深入了解线程的内部实现。如果你能推荐一些文章,那就太好了?我想我误用了投票这个词。我的意思是检查循环中的监视器/锁。