正在显示
1 个修改的文件
包含
19 行增加
和
4 行删除
| 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() { | ||
| 138 | 151 | ||
| 152 | + } | ||
| 153 | + }); | ||
| 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 |
-
请 注册 或 登录 后发表评论