我们正在创建需要通过TCP/IP套接字与另一个系统通信的ac#app.我们希望每秒接收大约1-2个传入事务,每条消息的平均大小约为10k(文本和1个图像).
然后我们将进行一些处理(可能需要100毫秒到3秒,具体取决于几个变量),然后发送大约1k的响应.
在我看过的例子中,有些是多线程的.对于这个应用程序,将其设置为单线程还是多线程会更好吗?如果建议使用多线程,那么大致不同的线程会做什么?
(不是特定于C#)
完成两种方式(极端性能不是决定因素),我更喜欢每线程1线程的方法.
监听器线程
此线程的作用是在套接字上侦听传入连接,接受它们,并生成一个新的连接线程(给它连接的套接字).
连接线程
这些线程(每个连接一个)处理与连接套接字的所有通信.如果请求是同步的,它们也可以处理请求的处理(您需要查看特定应用程序的请求).
当连接死亡时,该线程也会死亡.
管理线程
如果需要执行清理或定期维护,这些都可以在自己的线程中运行.
请记住锁定(显然): 连接需要共享多少数据?访问时确保所有资源都已正确锁定,并且您没有任何死锁或竞争条件.然而,这更像是一个"通用线程"主题.
| 归档时间: |
|
| 查看次数: |
3083 次 |
| 最近记录: |