关于TCP连接的设计及多线程有关问题

关于TCP连接的设计及多线程问题
这是样的,我选用TCP来做网络通信,我现在是一个线程去处理一个客户端的连接,用一个死循环去读客户端的数据,读的时候会卡在那条语句上不会往下走的,直到有数据来了才往下走

问题来了,如果我有10万个客户端,岂不是要开10万个线程?当然开不了这么多吧?

我想问的就是怎么处理这样的情况?我是用的C#,64位程序开了3000多个线程就快爆了

麻烦讲一下这种情况的处理原理,像那些大型多人在线的,几万人都在一个服务器的,服务端程序是怎么处理的呢?

------解决方案--------------------
socket实际用的时候并非都这么搞,有很多种模型可以适用于不同的场景http://www.cnblogs.com/nsnow/archive/2011/05/03/2036017.html
------解决方案--------------------
完成端口模型