Skip to content

Commit 1bd6a27

Browse files
committed
doc
1 parent 20d421d commit 1bd6a27

File tree

1 file changed

+4
-3
lines changed
  • concurrency/src/test/java/com/github/kuangcp/queue/disruptor/first

1 file changed

+4
-3
lines changed

concurrency/src/test/java/com/github/kuangcp/queue/disruptor/first/FirstTest.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ public void testConsumerChain() throws Exception {
104104

105105

106106
/**
107-
* 多生产者 多消费者
107+
* 多生产者 多消费者(长耗时)
108108
*/
109109
@Test
110110
public void testProductConsumerSlow() throws Exception {
@@ -118,17 +118,18 @@ public void testProductConsumerSlow() throws Exception {
118118
);
119119
// 有多少个消费者就会创建多少线程去执行消费,此时会创建三个线程
120120
disruptor
121-
.handleEventsWithWorkerPool(new OrderEventSlowHandler("a"), new OrderEventSlowHandler("b"))
121+
.handleEventsWithWorkerPool(new OrderEventSlowHandler("a1"), new OrderEventSlowHandler("a2"), new OrderEventSlowHandler("a3"))
122122
.then(new OrderEventSlowHandler("c"));
123123
disruptor.start();
124124
RingBuffer<OrderEvent> ringBuffer = disruptor.getRingBuffer();
125125
OrderEventProducer eventProducer = new OrderEventProducer(ringBuffer);
126126
// 创建一个线程池,模拟多个生产者
127127
ExecutorService fixedThreadPool = Executors.newFixedThreadPool(10);
128-
for (int i = 0; i < 100; i++) {
128+
for (int i = 0; i < 30; i++) {
129129
fixedThreadPool.execute(() -> eventProducer.onData(UUID.randomUUID().toString()));
130130
}
131131

132+
// 注意当所有消息都被消费后,消费者线程会进入无休止的CAS,导致CPU占用率高企
132133
Thread.currentThread().join();
133134
}
134135
}

0 commit comments

Comments
 (0)