Mega Code Archive

 
Categories / Java Tutorial / Collections
 

Using a LinkedList in multi-thread

import java.util.Collections; import java.util.LinkedList; import java.util.List; class PrepareProduction implements Runnable {   private final List<String> queue;   PrepareProduction(List<String> q) {     queue = q;   }   public void run() {     queue.add("1");     queue.add("done");   } } class DoProduction implements Runnable {   private final List<String> queue;   DoProduction(List<String> q) {     queue = q;   }   public void run() {     String value = queue.remove(0);     while (!value.equals("*")) {       System.out.println(value);       value = queue.remove(0);     }   } } public class Main {   public static void main(String[] args) throws Exception {     List q = Collections.synchronizedList(new LinkedList<String>());     Thread p1 = new Thread(new PrepareProduction(q));     Thread c1 = new Thread(new DoProduction(q));     p1.start();     c1.start();     p1.join();     c1.join();   } }