在Delphi应用程序中,一次可以运行的最大并发线程数是多少?假设单个线程处理时间约为100毫秒。
答案 0 :(得分:4)
并发线程数受可用资源的限制。但是,请记住,每个线程使用最少量的内存(默认情况下通常为1MB,除非您指定不同),并且运行的线程越多,操作系统管理它们的工作就越多,它的时间就越多只需要在它们之间切换,以便它们有公平的运行机会。一个好的经验法则是没有比可用CPU更多的线程,因为这将是在任何给定时刻可以物理运行的最大线程数。但是你当然可以拥有比CPU更多的线程,操作系统只会相应地安排它们,如果你一次运行太多,这会降低性能。因此,您需要考虑为什么首先使用线程并相应地计划在性能,内存使用,开销等之间进行权衡。多线程编程并非易事,所以不要轻易对待它。
答案 1 :(得分:1)
这取决于内存,您可以创建多少个线程或其他对象没有固定限制。在某些时候,如果你分配了太多的内存,你可能会遇到“内存不足”的异常,所以你应该考虑一下你真正需要调用多少线程并从那里开始。另外请记住,调用的线程越多,您应该期望所有线程的处理时间减少。因此,如果您同时拥有太多并发线程,则可能无法获得所需的性能。我希望这有帮助!