【发布时间】:2014-04-23 19:12:32
【问题描述】:
我对线程很陌生。我需要实现这样的方法,它将创建 2 个线程,做一些事情然后杀死它们 - for 循环中的所有内容。
主要目的:我需要确保线程将使用来自 for 循环的相同“i”值并行工作。这就是为什么我不在每个线程中声明 for 循环的原因。 (哪个先完成我不在乎)
我的愿景
public void threadsJob() throws Exception{
for(int i = 1; i<1000 ; i++) {
**final** int j = i;
Thread t1= new Thread(new Runnable() {
public void run() {
foo(j);
}
}
);
Thread t2= new Thread(new Runnable() {
public void run() {
bar(j);
}
}
);
t1.start();
t2.start();
t1.join();
t2.join();
}}
我的问题:那段代码有多可怕?应该改变什么?此外,我更喜欢保持代码非常简单。但是,我不确定上面的代码是否是合适的例子:)
【问题讨论】:
-
根据 foo 和 bar 实际执行的操作,创建新线程的时间很可能比仅连续执行工作所需的时间长。使用线程池。
标签: java multithreading loops coding-style