gpt4 book ai didi

c# - 当发生上下文切换时,线程会保持在同一个数字上吗?

转载 作者:行者123 更新时间:2023-11-30 13:54:39 24 4
gpt4 key购买 nike

我对使用 Task 有疑问。

我写了下面的代码:

static void Main(string[] args)
{
Task t = new Task(() => DoWork());
}

private static void DoWork()
{
//Do Something
}

DoWork 在 ThreadPool 的线程上运行。对于这个例子,假设线程数是 3。

我的问题:由于上下文切换等,在 func DoWork 中间有一个选项,函数的连续将在不是 3 的线程中?

谢谢!

最佳答案

My Question: There is option that in middle of the func DoWork, because of context switch etc', the continuous of the function will be in thread that is not 3?

不,上下文切换并不意味着它转到不同的线程,只是处理器核心占用不同的线程/逻辑来处理,这个仍然在同一个线程上。大多数线程具有相同的优先级,直到并且除非由 CLR(如 GC 或 OS)调度,这将优先于其他线程并卡住所有其他线程。其余的都必须在一些逻辑处理后继续离开处理器核心,或者我必须说处理器核心(线程调度逻辑)继续调度其他线程,因此不会让任何线程挨饿。 请注意在给定时间,处理器内核只能调度一个线程/工作单元

关于c# - 当发生上下文切换时,线程会保持在同一个数字上吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40588242/

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