Java 创建一个线程工厂,前两个线程池创建线程的优先级为10,后两个分别为1 2
时间: 2024-02-03 10:11:30 浏览: 95
线程调度的优先级
可以通过实现 ThreadFactory 接口来创建一个线程工厂。以下是一个示例代码,可以创建四个线程,前两个线程的优先级为10,后两个线程分别为1和2。
```java
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;
public class MyThreadFactory implements ThreadFactory {
private int count = 1;
@Override
public Thread newThread(Runnable r) {
Thread t = Executors.defaultThreadFactory().newThread(r);
if (count <= 2) {
t.setPriority(10);
} else if (count == 3) {
t.setPriority(1);
} else {
t.setPriority(2);
}
count++;
return t;
}
}
```
在代码中,我们首先使用 Executors.defaultThreadFactory() 来创建一个默认的线程工厂。然后,我们实现 newThread() 方法,并在其中根据当前线程的序号设置线程的优先级。最后,我们返回一个新的线程对象。
可以将这个线程工厂与线程池一起使用,例如:
```java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Main {
public static void main(String[] args) {
ExecutorService executor = Executors.newFixedThreadPool(4, new MyThreadFactory());
// 使用 executor 执行任务
executor.shutdown();
}
}
```
阅读全文