首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在线程内部派生线程是标准的还是糟糕的做法?

在线程内部派生线程是标准的还是糟糕的做法?
EN

Stack Overflow用户
提问于 2011-07-20 22:38:59
回答 1查看 1.1K关注 0票数 2

简而言之:在线程内部生成线程是一个标准过程吗?或者如果可能的话,应该避免这样做吗?

举个例子:想象一个并行的爬行器一次检索和解析多个文档。在我的推理中,有问题的爬行器需要两个线程(FetcherPool,ParserPool)来产生获取器和解析器工作线程,以便使所有工作都同时进行(见下文)。

示例:

代码语言:javascript
复制
Main Thread  
|------FetcherPool  
|      |------Fetcher  
|      |------Fetcher  
|  
|------ParserPool 
       |------Parser  
       |------Parser  

干杯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-20 22:59:36

不--因为你不能从其他任何东西中产生一个线程。你在脚本中产生的第一个线程是从"main“线程产生的。如果你在一个非多线程的应用程序中执行"Thread.current“,你会得到这个主线程。"Thread.main“也会返回它。

但如果你的问题是关于从"main“以外的线程产生,我也不认为这有什么本质上的坏处。为了你自己(或你的团队)的理智,你应该设计线程管理,这样工作者就不会失控(例如,产生比你预期更多的东西)。还应该考虑代码的可读性和对共享资源的访问控制。

这里有一篇关于多线程问题的有趣文章:http://www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-1.pdf

通常,将线程封装到对象中并只调用这些对象上的方法是一个好主意。这使得代码更容易理解。

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

https://stackoverflow.com/questions/6763666

复制
相关文章

相似问题

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