gpt4 book ai didi

.net - Socket ReceiveFromAsync 是隐式多线程的吗?

转载 作者:行者123 更新时间:2023-12-02 17:34:11 27 4
gpt4 key购买 nike

我目前正在开发高性能原始套接字应用程序。

我正在使用 ReceiveFromAsync 来接收数据包。这可能听起来像是一个愚蠢的问题,但这是否是隐式线程化的?我不确定是否需要取出接收到的数据包并从处理中退出,以确保在处理当前数据包时不会阻塞任何其他数据包。该文档并没有真正提到这一点。 3.5 套接字的示例代码没有线程化它,所以我最初的猜测是它是隐式处理的。

谢谢

最佳答案

所有异步IO函数都会创建/利用IO完成端口,它是进程提交的请求队列。每当进程进行异步 IO 调用时,都会在此队列上提交此请求。然后,一个特殊的线程池处理这些 IO 请求,这些是内核线程。因此,如果您将此系统管道(这些内核线程)视为多线程的一部分,那么您的代码就是多线程的。

如果您将通过异步 IO 调用提供给您的抽象视为您的起点,那么您的代码可能不是多线程的。

在任何一种情况下,都有多个线程正在运行,即使它们不是应用程序中的专用线程,或者它们是在应用程序启动之前创建的,并且在应用程序存在后它们将继续运行。

关于.net - Socket ReceiveFromAsync 是隐式多线程的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3365522/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com