Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.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

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
如何获得在Java中实现Runnable的对象的方法?_Java_Multithreading_Getter - Fatal编程技术网

如何获得在Java中实现Runnable的对象的方法?

如何获得在Java中实现Runnable的对象的方法?,java,multithreading,getter,Java,Multithreading,Getter,我有一个名为OBJ的对象,它实现了Runnable。 它有几个成员、一个构造函数、一个run()方法和一个特定计数的getter(其中一个成员)。 在我的main方法中,我有一个线程数组,每个线程都是一个newobj,每个线程都在run()方法中进行某种计算并将其保存在其计数中 现在,我希望有另一个循环(除了我启动所有线程的循环之外),对于每个线程,等待它完成,然后使用count getter对我从线程获得的所有计数求和 如何通过线程到达getter?最好的方法是使用带有可调用项的Executo

我有一个名为
OBJ
的对象,它实现了
Runnable
。 它有几个成员、一个构造函数、一个run()方法和一个特定计数的getter(其中一个成员)。 在我的main方法中,我有一个线程数组,每个线程都是一个
newobj
,每个线程都在
run()
方法中进行某种计算并将其保存在其计数中

现在,我希望有另一个循环(除了我启动所有线程的循环之外),对于每个线程,等待它完成,然后使用count getter对我从线程获得的所有计数求和


如何通过线程到达getter?

最好的方法是使用带有可调用项的ExecutorService(参见java.util.concurrent),从中可以获得未来。

好的,在到达线程循环之前创建OBJ实例:

List<OBJ> objects = new ArrayList<OBJ>();
// Create your objects here
for (int i = 0; i < NUM_OF_OBJ; ++i) {
   objects.add(new OBJ());
}

// Run the threads
List<Thread> threads = new ArrayList<Thread>();
for (int i = 0; i < NUM_OF_OBJ; ++i) {
   Thread t = new Thread(objects.get(i));
   threads.add(t);
   t.start();
}

// Wait for the threads to finish
for (Thread t : threads) {
    t.join();
}

// Sum all counts
int sum = 0;
for (OBJ object : objects) {
   sum += object.getCount();
}
List objects=new ArrayList();
//在此处创建对象
for(int i=0;i
@giorasch抱歉,错过了。哇!糟糕的回答和不正确的评论。不是我最好的时刻,没问题,伙计。我们都可以犯错误:)