Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是Ruby';什么是线程组?_Ruby_Multithreading - Fatal编程技术网

什么是Ruby';什么是线程组?

什么是Ruby';什么是线程组?,ruby,multithreading,Ruby,Multithreading,我正在用鹤嘴锄找Thread上的文档,突然发现ThreadGroup 文档描述了它的功能,但没有解释它的用途 是与线程池相关的线程组,我?在其父线程组中创建新线程。您可以使用ThreadGroup组织生成其他线程的父线程给出的隐式树结构,并使用list实例方法获取尚未终止的所有线程,即定义在组中所有线程上操作的方法 此外,如果您运行不受信任的代码并希望监视它产生的线程,则可以使用include禁止向该组添加(或删除)线程 对于留下一个真实的答案犹豫不决,但看看Google codesearch的

我正在用鹤嘴锄找
Thread
上的文档,突然发现
ThreadGroup

文档描述了它的功能,但没有解释它的用途


是与线程池相关的线程组,我?

在其父线程组中创建新线程。您可以使用ThreadGroup组织生成其他线程的父线程给出的隐式树结构,并使用
list
实例方法获取尚未终止的所有线程,即定义在组中所有线程上操作的方法


此外,如果您运行不受信任的代码并希望监视它产生的线程,则可以使用
include
禁止向该组添加(或删除)线程

对于留下一个真实的答案犹豫不决,但看看Google codesearch的用法,我想你已经一针见血了,它是所谓的绿色线程的线程池。@RussC我认为这只是线程池实现的一部分。您必须将作业数据添加到
队列中
,并使线程弹出队列中的项目。我基于维基百科对线程池的定义:。另外,从ruby 1.9开始,线程是本机的,不是绿色的。您能描述一下为什么要使用它,而不是它的功能吗?可以将它看作是一个专门用于线程的数组。例如,您可以组织一组并发任务,以检查该组中的所有任务是否都已完成。除了
include
方法之外,它对保持线程的组织性很有好处——Thread类本身不提供关于谁创建了线程的信息。Perheap举了一个我正在做的实验的例子:我有很多代理同时运行,分散在团队中。我可以使用ThreadGroups按团队组织代理线程,降低团队的优先级,或者检查团队中有多少代理线程仍然处于活动状态。