Merge remote-tracking branch 'origin/master'

This commit is contained in:
2022-11-03 13:07:43 +08:00

View File

@@ -6,7 +6,10 @@ import org.jetbrains.annotations.NotNull;
import java.lang.reflect.Type;
import java.util.UUID;
import java.util.concurrent.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ThreadFactory;
@SuppressWarnings("unused")
public interface CoreConstantObjects {
@@ -30,25 +33,24 @@ public interface CoreConstantObjects {
.serializeNulls()
.setPrettyPrinting()
.create();
/**
* JSON 解析器
*/
JsonParser JSON_PARSER = new JsonParser();
/**
* 异步线程
*/
ExecutorService WORKER_EXECUTOR = new ThreadPoolExecutor(1, Integer.MAX_VALUE, 60, TimeUnit.MINUTES, new SynchronousQueue<>(), new APIThreadFactory("HamsterCore - Executor"));
ExecutorService WORKER_EXECUTOR = Executors.newCachedThreadPool(new NamedThreadFactory("HamsterCore - Executor"));
/**
* 调度器线程
*/
ScheduledExecutorService SCHEDULED_EXECUTOR = Executors.newScheduledThreadPool(1, new APIThreadFactory("HamsterCore - Scheduler"));
ScheduledExecutorService SCHEDULED_EXECUTOR = Executors
.newScheduledThreadPool(1, new NamedThreadFactory("HamsterCore - Scheduler"));
class APIThreadFactory implements ThreadFactory {
}
class NamedThreadFactory implements ThreadFactory {
private final String name;
private int threadID;
public APIThreadFactory(String name) {
public NamedThreadFactory(String name) {
this.name = name;
threadID = 0;
}
@@ -58,9 +60,9 @@ public interface CoreConstantObjects {
threadID++;
return new Thread(runnable, name + "#" + threadID);
}
}
}
class MessageTypeAdapter implements JsonSerializer<DisplayMessage>, JsonDeserializer<DisplayMessage> {
class MessageTypeAdapter implements JsonSerializer<DisplayMessage>, JsonDeserializer<DisplayMessage> {
public static final MessageTypeAdapter INSTANCE = new MessageTypeAdapter();
private MessageTypeAdapter() {
@@ -75,5 +77,4 @@ public interface CoreConstantObjects {
public JsonElement serialize(DisplayMessage src, Type typeOfSrc, JsonSerializationContext context) {
return src.saveToJson();
}
}
}