1 4 package com.tctest.performance.generate.load; 5 6 import com.tc.util.Assert; 7 8 12 final class LoadConsumer extends Thread { 13 14 private final LoadBuffer loadBuffer; 15 private final MonitoredWorkQueue workQueue; 16 17 LoadConsumer(LoadBuffer loadBuffer, MonitoredWorkQueue workQueue) { 18 Assert.assertNotNull(loadBuffer); 19 Assert.assertNotNull(workQueue); 20 this.loadBuffer = loadBuffer; 21 this.workQueue = workQueue; 22 setDaemon(true); 23 setPriority(Thread.MIN_PRIORITY); 24 } 25 26 public void run() { 27 Thread worker1 = new Worker(); 28 Thread worker2 = new Worker(); 29 worker1.start(); 30 worker2.start(); 31 try { 32 worker1.join(); 33 worker2.join(); 34 } catch (InterruptedException e) { 35 throw new RuntimeException (e); 36 } 37 } 38 39 private class Worker extends Thread { 40 41 private Worker() { 42 setDaemon(true); 43 setPriority(Thread.MIN_PRIORITY); 44 } 45 46 public void run() { 47 try { 48 while (true) { 49 workQueue.put(loadBuffer.get()); 50 } 51 } catch (InterruptedException e) { 52 throw new RuntimeException (e); 53 } 54 } 55 } 56 } 57 | Popular Tags |