创建线程,做某事,杀死线程 - 所有内部循环[JAVA]

时间:2014-04-23 19:12:32

标签: java multithreading loops coding-style

我对线程很新。我需要实现这样的方法,它将创建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();
}}

我的问题:代码有多可怕?应该改变什么?此外,我更喜欢保持代码非常简单。但是,我不确定上面的代码是否合适的例子:)

1 个答案:

答案 0 :(得分:2)

使用Executors.newFixedThreadPool(2)

http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Executors.html

执行两个执行工作的Runnable。

http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html

然后在ExecutorService上关闭并执行awaitTermination。