gpt4 book ai didi

c# - 线程在操作系统上下文中的作用是什么?

转载 作者:行者123 更新时间:2023-12-03 12:51:44 27 4
gpt4 key购买 nike

我试图理解 Async 之间的区别编程和Multi Threaded编程。在 async我们说线程接受一个任务(T1)并开始执行它。如果同时另一个任务(T2)出现,它不会等待 T1 完成,相反,它会在 T1 在后台执行时选择第二个任务 T2。

The highlighted part is the most confusing part for me to wrap my head around. So when thread picks up T2, who is executing T1? What is the role of a thread in Operating System context? What does it do exactly?



这可能是个愚蠢的问题,但我在互联网上长达数小时的折磨并没有让我满意。还是我只是问错了问题?

最佳答案

大概如果 async编程异步编程意味着它仅意味着当某些事件可能以未严格定义的顺序、周期发生时对计算流进行编程。从这个角度来看,两种机制:线程和 I/O 都是异步的。然而.NET async机制与它们没有直接关系。本质上,它只是一个框架,以一种模仿同步执行但保持异步语义的形式包装类异步计算。也就是说,它不控制底层操作是异步还是同步(它由操作本身控制),甚至可以成功应用于这两种类型的操作,但与异步操作一起使用它更有利,这可能是为什么开发人员将这种机制与异步编程密切相关。所以你的问题的答案是“这取决于”。在 I/O 绑定(bind)异步操作的情况下,它的 IO 子系统以及 I/O 设备可以在 T2 被拾取并执行时提供 T1 的执行。在 CPU 密集型异步操作的情况下,它可以是另一个线程。如果操作是同步的,它们将一一执行,即同步。

关于c# - 线程在操作系统上下文中的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57236073/

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