使用实时Java进行开发,第1部分 探索实时Java的独特功能 - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-20
java.lang.reflect.InvocationTargetException; public class ThreadLogic implements Runnable { static void startThread(int priority) { Thread thread = ThreadAssigner.assignThread( priority, new ThreadLogic()); thread.start(); } public void run() { System.out.println("Running " + Thread.currentThread()); } } class ThreadAssigner { static Thread assignThread(int priority, Runnable runnable) { Thread thread = null; try { thread = assignThread(priority <= Thread.MAX_PRIORITY, runnable); } catch(InvocationTargetException e) { } catch(IllegalAccessException e) { } catch(InstantiationException e) { } catch(ClassNotFoundException e) { } if(thread == null) { thread = new Thread(runnable); priority = Math.min(priority, Thread.MAX_PRIORITY); } thread.setPriority(priority); return thread; } static Thread assignThread(boolean regular, Runnable runnable) throws InvocationTargetException, IllegalAccessException, InstantiationException, ClassNotFoundException { Thread thread = assignThread( regular ? "java.lang.Thread" : "javax.realtime.RealtimeThread", runnable); return thread; } static Thread assignThread(String className, Runnable runnable) throws InvocationTargetException, IllegalAccessException, InstantiationException, ClassNotFoundException { Class clazz = Class.forName(className); Constructor selectedConstructor = null; Constructor constructors[] = clazz.getConstructors(); top: for(Constructor constructor : constructors) { Class parameterTypes[] = constructor.getParameterTypes(); int parameterTypesLength = parameterTypes.length; if(parameterTypesLength == 0) { continue; } Class lastParameter = parameterTypes[parameterTypesLength - 1]; if(lastParameter.equals(Runnable.class)) { for(Class parameter : parameterTypes) { if(parameter.isPrimitive()) { continue top; } } if(selectedConstructor == null || selectedConstructor.getParameterTypes().length > parameterTypesLength) { selectedConstructor = constructor; } } } if(selectedConstructor == null) { throw new InstantiationException( "no compatible constructor"); } Class parameterTypes[] = selectedConstructor.getParame |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于使用实时Java进行开发,第1部分 探索实时Java的独特功能 - 编程入门网的所有评论