我有一些代码,每个用户对象,1-2秒的工作完成,然后等待60秒,然后做更多的工作。我的问题是,如果我可以说几千个用户,除了每个线程的堆栈更多的内存,是否有任何其他缺点,每个用户有一个线程(在60s等待期间休眠),而不是有一个小得多的数字线程服务所有用户?
答案 0 :(得分:0)
除了内存限制外,您可能会达到某些限制,例如/proc/sys/kernel/threads-max
和/proc/sys/vm/max_map_count
,否则它应该没问题。可能还有其他一些小的相关开销,但为什么不对它起作用并且你不希望增加负载以便耗尽机器资源。我的意思是,如果你没有问题,为什么要修复?
这是一个好主意,无论您采用哪种方法来查看机器如何处理并发用户的预期上限,并确保它在意外情况下有一些空间。