首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Worker Thread是否表示Thread类的实例

Worker Thread是否表示Thread类的实例
EN

Stack Overflow用户
提问于 2014-01-06 02:01:29
回答 2查看 154关注 0票数 0

我知道CLR维护着两个线程池,即工作线程和I/O线程。然而,在读完下面的文章后,我有点困惑:http://nirajrules.wordpress.com/2009/09/28/net-worker-threads-io-threads-and-asynchronous-programming/

我采访了一位从未听说过Worker Thread这个术语的资深开发人员。我将工作线程理解为主线程的同义词,例如,当用户请求ASP.NET网页时,就会创建一个工作线程。因此,如果有20个用户同时访问网站,那么将有20个活动的工作线程。如果20个用户访问一个创建了3个线程(http://msdn.microsoft.com/en-us/library/system.threading.thread%28v=vs.110%29.aspx)的多线程应用程序,那么会有60个活动线程吗?然而,经过进一步的研究,我发现:

代码语言:javascript
复制
1) Worker Thread is synonymous to Background Worker (not main thread)
2) The term Worker Thread means nothing to some people

因此,我的问题是:工作线程是否与线程(http://msdn.microsoft.com/en-us/library/system.threading.thread%28v=vs.110%29.aspx?)同义?或者它的意思是主线?

EN

回答 2

Stack Overflow用户

发布于 2015-05-30 15:37:36

我知道这只是一种非常外行(非技术)的方式来理解这些东西,但我发现理解工作线程概念的方法非常简单。

一般定义:-

“工作线程”只是一个线程,它根据老板的命令执行一些后台工作(我们可以称之为“客户”),并将工作结果更新给老板。

技术定义:-

工作线程通常被定义为在客户端请求时被激活的线程。

示例1:

1-我们有披萨店,那里有10个人是制作美味披萨的专家。这些被称为“工作线程”。

2-我们有一个从客户那里接收订单的人。那个人被称为“客户”。每当有新的订单到来时,“工作线程”之一就会开始准备披萨,并在披萨准备好后更新到客户端。

3-当订单少于10个时,一些工人只是坐在理想的位置。

4-当订单超过10个时,订单将被放入等待队列中。

示例2:

1-存在侦听端口8080的应用程序服务器。

2- -请求从端口8080传入。

3-侦听器线程(称为“客户端”)接收该请求,并将其分派到完成请求的“工作线程”。实际上,在应用服务器上维护了一个“工作线程”池(“工作线程”程序的许多对象)。

4-如果两个请求同时进入,则分配两个工作线程并同时执行任务。

票数 1
EN

Stack Overflow用户

发布于 2014-01-06 06:11:07

据我所知,工作线程不是UI线程。它允许在不锁定用户界面(UI)的情况下运行代码。在UI线程上运行的任何代码都会强制UI在代码完成之前不响应。有解决方法(例如Me.Update()),但好的做法通常是在非UI线程上运行耗时超过一秒的任何东西。

Worker thread和Thread之间的一个可能的区别是,Thread不一定报告它的进度,或者当它完成时报告给UI线程。我希望这能帮到你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20937120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档