riku
2022-06-17 3a5c011d9509d3bc0367921f463676c81ff2e374
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package cn.flightfeather.supervision.infrastructure.service;
 
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicInteger;
 
// 自定义线程工厂类
public class NamedThreadFactory implements ThreadFactory {
 
    // a thread counter
    private static AtomicInteger counter = new AtomicInteger(1);
    private String        name = "Adam";
    private boolean       daemon; // 守护线程
    private int           priority; // 线程优先级
 
    public NamedThreadFactory(String name) {
        this(name, false, -1);
    }
 
    public NamedThreadFactory(String name, boolean daemon) {
        this(name, daemon, -1);
    }
 
    public NamedThreadFactory(String name, boolean daemon, int priority) {
        this.name = name;
        this.daemon = daemon;
        this.priority = priority;
    }
 
    @Override
    public Thread newThread(Runnable r) {
        Thread thread = new Thread(r, name + "[" + counter.getAndIncrement() + "]");
        thread.setDaemon(daemon);
        if (priority != -1) {
            thread.setPriority(priority);
        }
        return thread;
    }
}