File tree Expand file tree Collapse file tree 1 file changed +39
-0
lines changed
src/main/java/com/concurrent/threadpool Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Original file line number Diff line number Diff line change 1+ package com .concurrent .threadpool ;
2+
3+ import lombok .AllArgsConstructor ;
4+ import lombok .Builder ;
5+ import lombok .Data ;
6+
7+ import java .util .concurrent .ThreadFactory ;
8+ import java .util .concurrent .atomic .AtomicInteger ;
9+
10+
11+ /**
12+ * 带有前缀名称的线程工厂
13+ *
14+ * 创建线程或线程池时请指定有意义的线程名称,方便出错时回溯。
15+ */
16+ @ Data
17+ @ Builder
18+ @ AllArgsConstructor
19+ public class ThreadFactoryImpl implements ThreadFactory {
20+
21+ /**
22+ * 线程名前缀
23+ */
24+ private final String threadName ;
25+
26+ /**
27+ * 生成线程编号。AtomicInteger 实现了原子性,保证了高并发下的线程安全
28+ */
29+ private final AtomicInteger threadNumber = new AtomicInteger (1 );
30+
31+
32+ @ Override
33+ public Thread newThread (Runnable r ) {
34+ return new Thread (r , threadName + threadNumber .getAndIncrement ());
35+ }
36+
37+ }
38+
39+
You can’t perform that action at this time.
0 commit comments