作者 crossoverJie

:white_check_mark: Adding tests.

1 package com.crossoverjie.cim.common.data.construct; 1 package com.crossoverjie.cim.common.data.construct;
2 2
  3 +import com.google.common.util.concurrent.ThreadFactoryBuilder;
3 import org.slf4j.Logger; 4 import org.slf4j.Logger;
4 import org.slf4j.LoggerFactory; 5 import org.slf4j.LoggerFactory;
5 6
  7 +import java.util.concurrent.BlockingQueue;
6 import java.util.concurrent.ExecutorService; 8 import java.util.concurrent.ExecutorService;
7 import java.util.concurrent.Executors; 9 import java.util.concurrent.Executors;
  10 +import java.util.concurrent.LinkedBlockingQueue;
  11 +import java.util.concurrent.ThreadFactory;
  12 +import java.util.concurrent.ThreadPoolExecutor;
8 import java.util.concurrent.TimeUnit; 13 import java.util.concurrent.TimeUnit;
9 14
10 public class RingBufferWheelTest { 15 public class RingBufferWheelTest {
@@ -130,24 +135,34 @@ public class RingBufferWheelTest { @@ -130,24 +135,34 @@ public class RingBufferWheelTest {
130 } 135 }
131 } 136 }
132 private static void cuncrrentTest6() throws InterruptedException { 137 private static void cuncrrentTest6() throws InterruptedException {
133 - ExecutorService executorService = Executors.newFixedThreadPool(10) ; 138 + BlockingQueue<Runnable> queue = new LinkedBlockingQueue(10);
  139 + ThreadFactory product = new ThreadFactoryBuilder()
  140 + .setNameFormat("msg-callback-%d")
  141 + .setDaemon(true)
  142 + .build();
  143 + ThreadPoolExecutor business = new ThreadPoolExecutor(4, 4, 1, TimeUnit.MILLISECONDS, queue,product);
134 144
  145 + ExecutorService executorService = Executors.newFixedThreadPool(10) ;
135 RingBufferWheel wheel = new RingBufferWheel(executorService) ; 146 RingBufferWheel wheel = new RingBufferWheel(executorService) ;
136 147
137 - for (int i = 0; i < 10; i++) { 148 + business.execute(new Runnable() {
  149 + @Override
  150 + public void run() {
  151 +
  152 + }
  153 + });
138 154
  155 + for (int i = 0; i < 10; i++) {
139 RingBufferWheel.Task task = new Job(i) ; 156 RingBufferWheel.Task task = new Job(i) ;
140 task.setKey(i); 157 task.setKey(i);
141 wheel.addTask(task); 158 wheel.addTask(task);
142 } 159 }
143 160
144 - wheel.start();  
145 161
146 TimeUnit.SECONDS.sleep(10); 162 TimeUnit.SECONDS.sleep(10);
147 RingBufferWheel.Task task = new Job(15) ; 163 RingBufferWheel.Task task = new Job(15) ;
148 task.setKey(15); 164 task.setKey(15);
149 wheel.addTask(task); 165 wheel.addTask(task);
150 - wheel.start();  
151 166
152 logger.info("task size={}",wheel.taskSize()); 167 logger.info("task size={}",wheel.taskSize());
153 168