Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.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
Java中使用线程的集群_Java_Multithreading_Cluster Analysis_Threadgroup - Fatal编程技术网

Java中使用线程的集群

Java中使用线程的集群,java,multithreading,cluster-analysis,threadgroup,Java,Multithreading,Cluster Analysis,Threadgroup,我有一份在Java中花费太长时间的工作。所以我想把这个任务分成线程并运行它们。线程完成任务后,返回到我的服务,并为它们提供新的任务。ThreadGroup是否适用于此建议或任何其他建议 首先,如果出现以下情况之一,则需要线程: a) 你有一台多处理器机器 或者b)您只有一个处理器,但您的作业是IO密集型(而不是CPU密集型) 否则,在使用线程时将一无所获 这里需要的是首先,如果出现以下情况之一,则需要线程: a) 你有一台多处理器机器 或者b)您只有一个处理器,但您的作业是IO密集型(而不是CP

我有一份在Java中花费太长时间的工作。所以我想把这个任务分成线程并运行它们。线程完成任务后,返回到我的服务,并为它们提供新的任务。ThreadGroup是否适用于此建议或任何其他建议

首先,如果出现以下情况之一,则需要线程:

a) 你有一台多处理器机器

或者b)您只有一个处理器,但您的作业是IO密集型(而不是CPU密集型)

否则,在使用线程时将一无所获


这里需要的是

首先,如果出现以下情况之一,则需要线程:

a) 你有一台多处理器机器

或者b)您只有一个处理器,但您的作业是IO密集型(而不是CPU密集型)

否则,在使用线程时将一无所获

你需要的是看看这个包裹

这里有一个教程,你可以在这里找到你需要知道的一切:

请特别关注软件包。

查看软件包

这里有一个教程,你可以在这里找到你需要知道的一切:


特别关注线程组。

ThreadGroup
通常对应用程序代码没有多大用处。容器代码也没有多大用处。Java插件使用
ThreadGroup
来区分线程属于哪个小程序

java.util.concurrent
,尤其是
ExecutorService
,提供了处理线程和并发的便捷实用程序

对于计算密集型细粒度任务,JDK7中的fork-join框架将非常有用


<>在开始这个困难代码之前,你可能想考虑它是否值得。你能做其他不需要大规模使用螺纹的优化吗?您要处理的是I/O延迟吗?如果它是CPU密集型的,那么使用比硬件多得多的线程就没有多大意义了。

ThreadGroup
通常对应用程序代码没有多大用处。容器代码也没有多大用处。Java插件使用
ThreadGroup
来区分线程属于哪个小程序

java.util.concurrent
,尤其是
ExecutorService
,提供了处理线程和并发的便捷实用程序

对于计算密集型细粒度任务,JDK7中的fork-join框架将非常有用


<>在开始这个困难代码之前,你可能想考虑它是否值得。你能做其他不需要大规模使用螺纹的优化吗?您要处理的是I/O延迟吗?如果它是CPU密集型的,那么在使用更多的线程时,在硬件上没有太大的意义。

不确定您的项目当前处于什么样的开发状态,因为您的问题陈述是非常有限的,但您可能需要考虑查看JDK7:

中的FooRoin项目。 从中我们可以学到很多东西,因为它都是开源的,所以你可以下载代码作为补丁并尝试使用它


(可能不适用于您现在必须实现的任何内容,但如果您打算在未来一段时间内开发/维护您的应用程序,则值得一看)

不确定您的项目当前处于何种开发状态,因为您的问题陈述非常有限,但是你可能想考虑看看JDK7:

中的分叉连接项目。 从中我们可以学到很多东西,因为它都是开源的,所以你可以下载代码作为补丁并尝试使用它


(可能不适用于您现在必须实现的任何内容,但如果您打算在未来一段时间内开发/维护您的应用程序,则值得一看)

查看ExecutorCompletionService-它正是这样做的

示例:[摘自Java 6 API JavaDocs]

 void solve(Executor e, Collection<Callable<Result>> solvers)
     throws InterruptedException, ExecutionException {
       CompletionService<Result> ecs
           = new ExecutorCompletionService<Result>(e);
       for (Callable<Result> s : solvers)
           ecs.submit(s);
       int n = solvers.size();
       for (int i = 0; i < n; ++i) {
           Result r = ecs.take().get();
           if (r != null)
               use(r);
       }
   }
void solve(执行器e、集合解算器)
抛出InterruptedException、ExecutionException{
完成服务
=新的ExecutorCompletionService(e);
for(可调用的s:解算器)
ecs.提交;
int n=solvers.size();
对于(int i=0;i
查看ExecutorCompletionService——它正是这样做的

示例:[摘自Java 6 API JavaDocs]

 void solve(Executor e, Collection<Callable<Result>> solvers)
     throws InterruptedException, ExecutionException {
       CompletionService<Result> ecs
           = new ExecutorCompletionService<Result>(e);
       for (Callable<Result> s : solvers)
           ecs.submit(s);
       int n = solvers.size();
       for (int i = 0; i < n; ++i) {
           Result r = ecs.take().get();
           if (r != null)
               use(r);
       }
   }
void solve(执行器e、集合解算器)
抛出InterruptedException、ExecutionException{
完成服务
=新的ExecutorCompletionService(e);
for(可调用的s:解算器)
ecs.提交;
int n=solvers.size();
对于(int i=0;i
我想你说的“给他们工作”是指向他们传递数据?“给他们提供新工作”涉及到什么?在这个经济体中,甚至连线程都很难找到工作。我想你说的“给他们工作”是指向他们传递数据?“给他们提供新工作”涉及到什么?在这个经济体中,甚至连线程都很难找到工作。