【发布时间】:2012-08-28 09:23:38
【问题描述】:
我有一个主进程main。它创建了 10 个线程(比如说),然后我想要做的是:
while(required){
Thread t= new Thread(new ClassImplementingRunnable());
t.start();
counter++;
}
现在我有了这些线程的列表,并且对于每个线程我想做一组进程,对所有线程都是一样的,因此我把那个实现放在ClassImplementingRunnable 的运行方法中。
现在线程完成执行后,我想等待所有线程停止,然后再次调用它们,但这次我想串行而不是并行执行。
为此,我加入了每个线程,等待它们完成执行,但之后我不知道如何再次唤起它们并连续运行那段代码。 我可以做类似的事情吗
for(each thread){
t.reevoke(); //how can i do that.
t.doThis(); // Also where does `dothis()` go, given that my ClassImplementingRunnable is an inner class.
}
另外,我想使用相同的线程,即我希望从他们离开的地方继续,但以串行方式。 我不确定如何处理最后一段伪代码。 请帮忙。 使用 java。
【问题讨论】:
-
所以您想测试同时(并行)启动所有线程与串行启动它们是否更快?
-
什么是
doThis?是指Runnables的run方法吗? -
this time i want to do them serially not in parallel.在这种情况下,您不需要多个线程,您只需要一个,即调用线程的那个。线程一旦完成就无法重新启动。 -
无法重新启动线程。完成后,您将必须使用您的可运行文件创建一个新线程。
-
但是如果我创建新线程他们不会知道以前的线程做了什么,那么他们创建的所有对象都会丢失,或者不会?如何访问之前线程所做的更改?
标签: java multithreading