有人能告诉我是否有办法找出可在不同Windows系统上运行的最大线程数?
例如 - (假设)Windows 32位系统最多可以运行4000个线程。
答案 0 :(得分:1)
我怀疑是否有最大数量。好吧,因为我们使用的是有限数量的内存,所以它可以包含在您可以容纳到内存中的多个线程中,也可以包含在您可以跟踪的内容中。每个系统都不同,我知道Java和C没有提供此功能的功能。 C#可以告诉你特定对象/应用程序需要多少内存,这样你就可以计算出估计值。
您可以在系统上测试。编写一个示例应用程序,它会生成线程并查看内存不足的时间。使用计数器来计算它们。这将为您提供系统的大致范围。
在Java中,您可以将ExecutorService
与线程池一起使用。根据您使用的执行器服务,如果您提交更多作业,它可以继续生成线程。
C#中存在类似的技术。
更好的问题是产生的最大线程数和避免颠簸是什么。
您是否正在尝试接管操作系统并执行自己的流程/线程管理?你不应该这样做。