# HG changeset patch # User Shinji KONO # Date 1310045393 -32400 # Node ID 9250cacee347aa84cc58cedde0d64f20677c00a1 # Parent 6eb7d0c8f11d720b16661b772533d5ecc222de6b MultiThreadTee diff -r 6eb7d0c8f11d -r 9250cacee347 src/test/MultiThreadTee.java --- a/src/test/MultiThreadTee.java Thu Jul 07 21:13:09 2011 +0900 +++ b/src/test/MultiThreadTee.java Thu Jul 07 22:29:53 2011 +0900 @@ -1,17 +1,20 @@ package test; import java.util.LinkedList; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.SynchronousQueue; public class MultiThreadTee { static class Parent extends Thread { - LinkedList> clients = new LinkedList>(); + LinkedList> clients = new LinkedList>(); - SynchronousQueue accept() { + BlockingQueue accept() { - SynchronousQueue s = new SynchronousQueue(); + // BlockingQueue s = new LinkedBlockingQueue(); + BlockingQueue s = new SynchronousQueue(); clients.add(s); return s; @@ -20,7 +23,7 @@ } void put(String s) throws InterruptedException { - for (SynchronousQueue queue : clients) { + for (BlockingQueue queue : clients) { queue.put(s); } @@ -33,7 +36,7 @@ static class Client extends Thread { Parent p; - private SynchronousQueue queue; + private BlockingQueue queue; @@ -48,8 +51,14 @@ String item; // while(!(item = queue.poll()).equals("") ) { while(true) { - item = queue.poll(); - if(item == null) continue; + try { + item = queue.take(); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + // System.out.println("wating"); + continue; + } + // if(item == null) continue; if(item.equals("")) return; System.out.println(item); } diff -r 6eb7d0c8f11d -r 9250cacee347 src/test/MulticastQueue.java --- a/src/test/MulticastQueue.java Thu Jul 07 21:13:09 2011 +0900 +++ b/src/test/MulticastQueue.java Thu Jul 07 22:29:53 2011 +0900 @@ -14,7 +14,6 @@ Runnable type2 = new Runnable(){ - @Override public void run() { Client client = queue.newClient(); @@ -34,7 +33,6 @@ Runnable thread = new Runnable(){ - @Override public void run() { Client client = queue.newClient();