Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -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,50 +33,48 @@ 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 {
|
}
|
||||||
private final String name;
|
|
||||||
private int threadID;
|
|
||||||
|
|
||||||
public APIThreadFactory(String name) {
|
class NamedThreadFactory implements ThreadFactory {
|
||||||
this.name = name;
|
private final String name;
|
||||||
threadID = 0;
|
private int threadID;
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
public NamedThreadFactory(String name) {
|
||||||
public Thread newThread(@NotNull Runnable runnable) {
|
this.name = name;
|
||||||
threadID++;
|
threadID = 0;
|
||||||
return new Thread(runnable, name + "#" + threadID);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class MessageTypeAdapter implements JsonSerializer<DisplayMessage>, JsonDeserializer<DisplayMessage> {
|
@Override
|
||||||
public static final MessageTypeAdapter INSTANCE = new MessageTypeAdapter();
|
public Thread newThread(@NotNull Runnable runnable) {
|
||||||
|
threadID++;
|
||||||
private MessageTypeAdapter() {
|
return new Thread(runnable, name + "#" + threadID);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
@Override
|
|
||||||
public DisplayMessage deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
|
class MessageTypeAdapter implements JsonSerializer<DisplayMessage>, JsonDeserializer<DisplayMessage> {
|
||||||
return new DisplayMessage().fromJson(json);
|
public static final MessageTypeAdapter INSTANCE = new MessageTypeAdapter();
|
||||||
}
|
|
||||||
|
private MessageTypeAdapter() {
|
||||||
@Override
|
}
|
||||||
public JsonElement serialize(DisplayMessage src, Type typeOfSrc, JsonSerializationContext context) {
|
|
||||||
return src.saveToJson();
|
@Override
|
||||||
}
|
public DisplayMessage deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
|
||||||
|
return new DisplayMessage().fromJson(json);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JsonElement serialize(DisplayMessage src, Type typeOfSrc, JsonSerializationContext context) {
|
||||||
|
return src.saveToJson();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user