2016-01-25 4 views
0

У меня есть проект тестирования jbehave, мы должны обрабатывать зависимость между историями. мы группируем рассказы по разным путям.Могу ли я обрабатывать многопоточность jbehave?

мне нужно запускать каждый рассказ путь на другом потоке,

я сделать следующий

 List<String> str1 = .... 
     List<String> str2 = .... 

     ExecutorService executer = java.util.concurrent.Executors.newFixedThreadPool(5); 


     Embedder emb = configuredEmbedder();     
     Embedder emb1 = configuredEmbedder(); 

     for (int i = 0; i < 2; i++) { 

      switch (i) { 
      case 0: 
       executer.submit(new Runnable() { 
        public void run() { 
         System.out.println("thread 1"); 
         emb.runStoriesAsPaths(str1); 
        } 
       }); 
       break; 
      case 1: 
       executer.submit(new Runnable() { 
        public void run() { 
         System.out.println("thread 2"); 

         emb1.runStoriesAsPaths(str2); 
        } 
       }); 
       break; 

      default: 
       break; 
      } 

     } 

     // 

     System.out.println("All tasks submitted"); 


     try { 
      executer.awaitTermination(1, TimeUnit.DAYS); 

     } catch (InterruptedException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     executer.shutdown(); 
     System.out.println("All thread tasks completed "); 

, но он не работает в многопоточном, он работает один за другим. - это неправильный подход или проблема с кодировкой?

ответ

0

Похоже, ваш пытаются иметь две разные логики, один для четных и один для нечетных ... в любом случае, пожалуйста, найти ниже рабочего кода с ExcutorService ..

public class TestExecutorService { 

    static ExecutorService executer = java.util.concurrent.Executors.newFixedThreadPool(5); 

    public TestExecutorService() { 
     // TODO Auto-generated constructor stub 
    } 

    public static void main(String... str1) 
    { 
     for (int i = 0; i < 100; i++) { 

      int y = i%2; 

       switch (y) { 

       case 0: 
        executer.submit(new Runnable() { 
         public void run() { 
          System.out.println("thread 1"+ "count: "+Thread.currentThread().getName()); 

         } 
        }); 
        break; 
       case 1: 
        executer.submit(new Runnable() { 
         public void run() { 
          System.out.println("thread 1"+ "count: "+Thread.currentThread().getName()); 


         } 
        }); 
        break; 

       default: 
        break; 
       } 

      } 

    } 
+0

проблема с JBehave с резьб не с сама резьба –

Смежные вопросы