我在Android项目中全部使用Handler
和HandlerThread
。我在服务中使用了大部分内容。在那里,我的处理程序由一个具有低优先级的HandlerThread支持,在onCreated()
中创建并在onDestroy()
中停止。
他们中的许多人只是在等待。例如。他们每五分钟处理几秒钟。
总的来说,我的应用程序有大约20个线程(其中一半是HandlerThreads)。那么,打开这么多线程是一个性能问题吗?在Is it bad to have threads waiting in java?我学到了,它应该是正确的。我只是想检查,如果这也适用于HandlerThread
。
答案 0 :(得分:1)
大概20?可能还不错。它可能会略微降低内核调度程序的性能,但只要您没有达到操作系统限制并且不进行轮询,空闲线程就不会占用CPU。它们可以占用内存,因此请确保不要在这些线程上保留您不一定需要的任何引用。