Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 让许多手忙脚乱的人活着,什么都不做,只是等待,这不好吗?_Android_Multithreading_Performance_Android Handler_Android Handlerthread - Fatal编程技术网

Android 让许多手忙脚乱的人活着,什么都不做,只是等待,这不好吗?

Android 让许多手忙脚乱的人活着,什么都不做,只是等待,这不好吗?,android,multithreading,performance,android-handler,android-handlerthread,Android,Multithreading,Performance,Android Handler,Android Handlerthread,在我的Android项目中,我将Handler与HandlerThread结合使用。我在服务中使用了它们中的大多数。在那里,由低优先级的单个HandlerThread支持的处理程序在onCreated()中创建,并在onDestroy()中停止 他们中的许多人只是一直在等待。他们每五分钟处理几秒钟 我的应用程序总共有20个线程(其中一半是HandlerThreads)。那么,打开这么多线程是性能问题吗?我从中学到,它应该是正确的。我只想检查一下,这是否也适用于HandlerThread。大约20

在我的Android项目中,我将
Handler
HandlerThread
结合使用。我在服务中使用了它们中的大多数。在那里,由低优先级的单个HandlerThread支持的处理程序在
onCreated()
中创建,并在
onDestroy()中停止

他们中的许多人只是一直在等待。他们每五分钟处理几秒钟


我的应用程序总共有20个线程(其中一半是HandlerThreads)。那么,打开这么多线程是性能问题吗?我从中学到,它应该是正确的。我只想检查一下,这是否也适用于
HandlerThread

大约20?可能不太坏。这可能会略微降低内核调度程序的性能,但只要不达到操作系统限制且不轮询,空闲线程就不会占用CPU。不过它们可能占用内存,因此请确保不要保留那些线程上不完全需要的任何引用。

我只是使用
处理程序的
方法postMessage(Runnable Runnable)
,它基本上充当队列。我不扩展
处理程序
处理程序线程
。所以,我从来没有在线程中引用过任何东西。那么它的性能也不会太差。尽管从架构的角度来看,将它们转换为IntentService可能更有意义,但如果所有服务都只是将消息传递给HandlerThread。