gpt4 book ai didi

Windows 在单独的线程上重叠 IO 与 IO

转载 作者:可可西里 更新时间:2023-11-01 10:36:06 24 4
gpt4 key购买 nike

在 Windows 上,当您进行 I/O 时,您可以使用 OVERLAPPED 选项进行异步操作。这样做与在另一个线程上同步执行 I/O 之间有什么区别吗?如果是这样,哪个更好?操作系统是否只是在异步情况下产生一个单独的线程,或者它只是在驱动程序线程上排队并发送信号而不是阻塞等待?

谢谢!

最佳答案

Windows I/O 本质上是异步的,因此在 .NET 中执行异步操作,例如 should not use a thread ,一旦操作完成,一些现有线程会被短暂借用以通知操作完成,但不会创建任何线程。

这与在另一个线程上运行同步操作完全不同。它用完了一个线程,这使得程序的可伸缩性大大降低。在 .NET 中,一个线程的默认本地存储为 1MB,因此运行数千个线程将消耗 GB 的内存。然后你还会有在线程之间切换的额外成本,这通常很小但如果你有很多线程就会加起来。

关于Windows 在单独的线程上重叠 IO 与 IO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25656171/

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