Java 最大线程数
我想知道在Android设备上运行的线程是否有最大数量。它取决于设备的类型?正如@Xaver Kapeller所评论的,您可以创建任意数量的Java 最大线程数,java,android,multithreading,Java,Android,Multithreading,我想知道在Android设备上运行的线程是否有最大数量。它取决于设备的类型?正如@Xaver Kapeller所评论的,您可以创建任意数量的线程,但更多的线程实际上不是解决方案的一部分 处理器中的核心(CPU)在给定时间只处理一个任务(进程或线程) 因此,在处理器中,具有1个内核的处理器将一次处理一个线程。因此,从技术上讲,无论您为此处理器打开多少线程,它都将在给定时间为一个线程提供服务。所有正在运行的线程都将按顺序使用处理器,利用处理器的量子时间,而处理器的量子时间似乎只是并发的 具有2个内核
线程,但更多的线程实际上不是解决方案的一部分
处理器
中的核心
(CPU)在给定时间只处理一个任务
(进程
或线程
)
因此,在处理器中,具有1个内核的处理器将一次处理一个线程。因此,从技术上讲,无论您为此处理器
打开多少线程,它都将在给定时间为一个线程提供服务。所有正在运行的线程都将按顺序使用处理器,利用处理器的量子时间,而处理器的量子时间似乎只是并发的
具有2个内核的处理器将一次处理2个线程(两个线程的并发执行)
具有4个核心的处理器将一次处理4个线程(并发执行4个线程)
具有8核的处理器将一次处理8个线程(并发执行八个线程。因此,安卓设备上可能运行的最大线程数取决于设备是32位处理器还是64位处理器。但在达到实际最大限制之前,内存会受到限制
正如文章中提到的,您可以运行测试来确定您可以在Android版本中创建的最大线程数。技术上没有限制,但在某些情况下,拥有更多线程的效率将低于拥有更少线程的效率。如果您想看到线程池的最佳实现,请查看soAsyncTask
的urce代码。Lol您是否要求FTC?对于运行线程数大于内核数的IO绑定操作仍然是有益的,因为它们中的大多数可以并行等待。