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.lang.reflect.Type;
import java.util.UUID; 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") @SuppressWarnings("unused")
public interface CoreConstantObjects { public interface CoreConstantObjects {
@@ -30,25 +33,24 @@ public interface CoreConstantObjects {
.serializeNulls() .serializeNulls()
.setPrettyPrinting() .setPrettyPrinting()
.create(); .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 final String name;
private int threadID; private int threadID;
public APIThreadFactory(String name) { public NamedThreadFactory(String name) {
this.name = name; this.name = name;
threadID = 0; threadID = 0;
} }
@@ -58,9 +60,9 @@ public interface CoreConstantObjects {
threadID++; threadID++;
return new Thread(runnable, name + "#" + 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(); public static final MessageTypeAdapter INSTANCE = new MessageTypeAdapter();
private MessageTypeAdapter() { private MessageTypeAdapter() {
@@ -75,5 +77,4 @@ public interface CoreConstantObjects {
public JsonElement serialize(DisplayMessage src, Type typeOfSrc, JsonSerializationContext context) { public JsonElement serialize(DisplayMessage src, Type typeOfSrc, JsonSerializationContext context) {
return src.saveToJson(); return src.saveToJson();
} }
}
} }