|
|
|
package com.crossoverjie.cim.common.data.construct;
|
|
|
|
|
|
|
|
|
|
|
|
import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
|
|
|
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
...
|
...
|
@@ -17,7 +19,7 @@ public class RingBufferWheelTest { |
|
|
|
private static Logger logger = LoggerFactory.getLogger(RingBufferWheelTest.class) ;
|
|
|
|
|
|
|
|
public static void main(String[] args) throws InterruptedException {
|
|
|
|
test1();
|
|
|
|
test5();
|
|
|
|
|
|
|
|
return;
|
|
|
|
}
|
|
...
|
...
|
@@ -25,7 +27,7 @@ public class RingBufferWheelTest { |
|
|
|
private static void test1() throws InterruptedException {
|
|
|
|
ExecutorService executorService = Executors.newFixedThreadPool(2) ;
|
|
|
|
|
|
|
|
Task task = new Task() ;
|
|
|
|
RingBufferWheel.Task task = new Task() ;
|
|
|
|
task.setKey(10);
|
|
|
|
RingBufferWheel wheel = new RingBufferWheel(executorService) ;
|
|
|
|
wheel.addTask(task) ;
|
|
...
|
...
|
@@ -42,7 +44,7 @@ public class RingBufferWheelTest { |
|
|
|
private static void test2() throws InterruptedException {
|
|
|
|
ExecutorService executorService = Executors.newFixedThreadPool(2) ;
|
|
|
|
|
|
|
|
Task task = new Task() ;
|
|
|
|
RingBufferWheel.Task task = new Task() ;
|
|
|
|
task.setKey(10);
|
|
|
|
RingBufferWheel wheel = new RingBufferWheel(executorService) ;
|
|
|
|
wheel.addTask(task) ;
|
|
...
|
...
|
@@ -72,7 +74,7 @@ public class RingBufferWheelTest { |
|
|
|
private static void test3() throws InterruptedException {
|
|
|
|
ExecutorService executorService = Executors.newFixedThreadPool(2) ;
|
|
|
|
|
|
|
|
Task task = new Task() ;
|
|
|
|
RingBufferWheel.Task task = new Task() ;
|
|
|
|
task.setKey(10);
|
|
|
|
RingBufferWheel wheel = new RingBufferWheel(executorService) ;
|
|
|
|
wheel.addTask(task) ;
|
|
...
|
...
|
@@ -95,7 +97,7 @@ public class RingBufferWheelTest { |
|
|
|
RingBufferWheel wheel = new RingBufferWheel(executorService) ;
|
|
|
|
|
|
|
|
for (int i = 0; i < 65; i++) {
|
|
|
|
Job task = new Job(i) ;
|
|
|
|
RingBufferWheel.Task task = new Job(i) ;
|
|
|
|
task.setKey(i);
|
|
|
|
wheel.addTask(task);
|
|
|
|
}
|
|
...
|
...
|
@@ -114,7 +116,7 @@ public class RingBufferWheelTest { |
|
|
|
RingBufferWheel wheel = new RingBufferWheel(executorService,512) ;
|
|
|
|
|
|
|
|
for (int i = 0; i < 65; i++) {
|
|
|
|
Job task = new Job(i) ;
|
|
|
|
RingBufferWheel.Task task = new Job(i) ;
|
|
|
|
task.setKey(i);
|
|
|
|
wheel.addTask(task);
|
|
|
|
}
|
|
...
|
...
|
@@ -125,14 +127,28 @@ public class RingBufferWheelTest { |
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
private static void test6() throws InterruptedException {
|
|
|
|
ExecutorService executorService = Executors.newFixedThreadPool(2) ;
|
|
|
|
|
|
|
|
RingBufferWheel wheel = new RingBufferWheel(executorService,512) ;
|
|
|
|
|
|
|
|
private static class Task extends RingBufferWheel.Task{
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
logger.info("================");
|
|
|
|
for (int i = 0; i < 10; i++) {
|
|
|
|
RingBufferWheel.Task task = new Job(i) ;
|
|
|
|
task.setKey(i);
|
|
|
|
wheel.addTask(task);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
TimeUnit.SECONDS.sleep(10);
|
|
|
|
RingBufferWheel.Task task = new Job(15) ;
|
|
|
|
task.setKey(15);
|
|
|
|
wheel.addTask(task);
|
|
|
|
|
|
|
|
logger.info("task size={}",wheel.taskSize());
|
|
|
|
|
|
|
|
wheel.stop(false);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
private static void cuncrrentTest6() throws InterruptedException {
|
|
|
|
BlockingQueue<Runnable> queue = new LinkedBlockingQueue(10);
|
|
...
|
...
|
@@ -184,4 +200,13 @@ public class RingBufferWheelTest { |
|
|
|
logger.info("number={}" , num);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private static class Task extends RingBufferWheel.Task{
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
logger.info("================");
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
} |
|
|
\ No newline at end of file |
...
|
...
|
|