Revision: 8607
                            
                                                            
                                    
                                        
Initial Code
                                    
                                    
                                                            
                                    
                                        
Initial URL
                                    
                                    
                                                            
                                    
                                        
Initial Description
                                    
                                    
                                                            
                                    
                                        
Initial Title
                                    
                                    
                                                            
                                    
                                        
Initial Tags
                                    
                                    
                                
                                                            
                                    
                                        
Initial Language
                                    
                                    
                                                    
                        at September 30, 2008 12:00 by liqweed
                            
                            Initial Code
ExecutorService executorService = Executors.newFixedThreadPool(5);
        int tasksCount = 10;
        final CountDownLatch latch = new CountDownLatch(tasksCount);
        for (int i = 0; i < tasksCount; i++ ) {
            executorService.execute(new Runnable() {
                public void run() {
                    try {
                        // Do some work;
                    } finally {
                        latch.countDown();
                    }
                }
            });
        }
        try {
            latch.await();
        } catch (InterruptedException e) {
            // todo >> handle exception
        }
        // All done!
        // Do some more work
    }
                                Initial URL
http://java.sun.com/j2se/1.6.0/docs/api/java/util/concurrent/CountDownLatch.html
Initial Description
A simple way to parallelize a for loop in Java. Wrapping each iteration (task) with a Runnable, executing them with an ExecutorService (to pool threads) and coordinating them with a simple CountDownLatch. Due to Java's lack of closures, this simple scenario is rather verbose.
Initial Title
Coordinating Runnable tasks using CountDownLatch
Initial Tags
Initial Language
Java