【发布时间】:2015-04-21 20:30:10
【问题描述】:
我想处理 300 到 400 个客户端连接,但我不想为每个客户端连接创建一个线程(或者创建 400 个线程有什么问题吗?)。
所以我读到我应该使用线程池来解决这个问题,但我无法理解线程池是如何真正解决这个问题的。我的意思是在我对线程池的理解中,开始执行任务的线程数量是有限的。但是一旦线程接受recv() 任务,如果没有可读取的内容,它将立即阻塞!那么解决方案不应该是我应该有一种机制,让我在实际尝试阅读之前知道是否有要阅读的东西吗?那么线程池究竟是如何解决我处理大量客户端连接的问题的呢?
编辑:将read()更改为recv()。
【问题讨论】:
-
查看这个答案。我认为它可以解决您的阅读问题。 stackoverflow.com/questions/5616092/…
标签: c++ windows multithreading sockets network-programming