This commit is contained in:
Administrator
2025-04-24 10:16:38 +08:00
parent 6de65562be
commit 7267aec1fd
108 changed files with 7621 additions and 1890 deletions
+44 -1
View File
@@ -3,8 +3,8 @@ package org.kne.cloud.network;
import java.lang.reflect.Method;
public class ThreadTool {
public static boolean first=true;
public static boolean forceD=true;
public static boolean first=true;
public static Thread makeVThreadIfSupport(String name,Runnable r) {
if(forceD)
return new Thread(r, name);
@@ -64,4 +64,47 @@ public class ThreadTool {
rt.setDaemon(true);
return rt;
}
public static Thread makeVDaemonThread(String name, Runnable r) {
try { //return new Thread(r, name);
Class<?> c=Class.forName("java.lang.Thread");
Method m= c.getDeclaredMethod("ofVirtual", null);
Object o=m.invoke(null, null);
Class<?> cb=Class.forName("java.lang.Thread$Builder");
Method mn= cb.getDeclaredMethod("name", String.class);
mn.invoke(o, name);
Method mu= cb.getDeclaredMethod("unstarted", Runnable.class);
return (Thread) mu.invoke(o, r);
//return Thread.ofVirtual().name(name).unstarted(r);
}catch(Throwable e) {
//e.printStackTrace();
if(first) {
System.out.println("提示:请使用java21以上版本以提高本软件的数据转发性能!");
first=false;
}
Thread rt=new Thread(r, name);
rt.setDaemon(true);
return rt;
}
}
public static Thread makeVThread(String name, Runnable r) {
try { //return new Thread(r, name);
Class<?> c=Class.forName("java.lang.Thread");
Method m= c.getDeclaredMethod("ofVirtual", null);
Object o=m.invoke(null, null);
Class<?> cb=Class.forName("java.lang.Thread$Builder");
Method mn= cb.getDeclaredMethod("name", String.class);
mn.invoke(o, name);
Method mu= cb.getDeclaredMethod("unstarted", Runnable.class);
return (Thread) mu.invoke(o, r);
//return Thread.ofVirtual().name(name).unstarted(r);
}catch(Throwable e) {
//e.printStackTrace();
if(first) {
System.out.println("提示:请使用java21以上版本以提高本软件的数据转发性能!");
first=false;
}
return new Thread(r, name);
}
}
}