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