|
|
1
3
同步上下文和线程上下文是两个完全不同的东西。同步上下文是一种方法,它可以将一个工作单元排队到一个上下文(主要是一个不同的线程)。 Here 是一个引用。
同步上下文非常有用的一个典型示例是WinForms或WPF应用程序等GUI应用程序。在WinForms和WPF中,只有一个UI线程可以更新UI元素(文本框、复选框等)。如果尝试从另一个非UI线程更改textbox的内容,则不会发生更改,或者可能引发异常(取决于UI框架)。因此,在这种应用程序中,非UI线程的工作线程需要将UI元素的所有更改调度到UI线程。这就是同步上下文所提供的。它允许您将一个工作单元(某个方法的执行)发布到不同的上下文—在本例中是UI线程。 Here 是Windows操作系统和 here 在x64 Windows上。当所有CPU寄存器的内容被移动到冻结线程的线程上下文时,OS会找到另一个(最早的)必须运行其代码的线程,并将其线程上下文结构的内容移动到CPU寄存器。在此之后,上下文切换结束,CPU可以执行前一个线程的代码,直到发生另一个上下文切换。 所以同步上下文和线程上下文是两个完全不同的概念。线程上下文是一种底层结构,允许操作系统在线程之间切换,而同步上下文是一种机制,用于简化将工作项发送到不同上下文(主要是不同的线程)的过程。 |
|
|
RoddyRott · 如何监视AWS中的线程 8 年前 |
|
|
John · 非阻塞http客户端与使用独立线程池的阻塞http客户端 8 年前 |
|
|
Yomal · 在java中,如何知道线程池的任务何时结束 9 年前 |
|
|
Hymir · 用于挂起线程的C++线程池 9 年前 |
|
|
WeInThis · Python-将线程转换为多处理 9 年前 |