oracle表分區實現及查詢

public class ReflectUtil {public static Object invoke(Object obj,String method,Object...param){        Class cls=obj.getClass();        try {            if(param==null)                return cls.getDeclaredMethod(method).invoke(obj);            else{                Class[] clss=new Class[param.length];                for(int i=0;i cls=Class.forName(className);                Method m=cls.getDeclaredMethod("getInstance");                return m.invoke(null);            } catch (Exception e1) {                return null;            }        }    }    public static void writeObject(Object obj,String path){        RandomAccessFile raf = null;        ObjectOutputStream oos = null;        FileOutputStream fos = null;        try {            raf = new RandomAccessFile(path, "rw");            fos = new FileOutputStream(raf.getFD());            oos=new ObjectOutputStream(fos);            oos.writeObject(obj);        } catch (Exception e) {            e.printStackTrace();        } finally {            try {                if(raf != null) {                    raf.close();                }                if(fos != null) {                    fos.close();                }                if(oos != null) {                    oos.close();                }            }catch(Exception ex) {                ex.printStackTrace();            }        }    }    @SuppressWarnings("unchecked")    public static T readObject(String path){        RandomAccessFile raf = null;        ObjectInputStream ooi = null;        FileInputStream fis = null;        try {            raf= new RandomAccessFile(path, "rw");            fis = new FileInputStream(raf.getFD());            ooi=new ObjectInputStream(fis);            Object obj=ooi.readObject();            return (T) obj;        } catch (Exception e) {            e.printStackTrace();        } finally {            try {                if(raf != null) {                    raf.close();                }                if(ooi != null) {                    ooi.close();                }                if(fis != null) {                    fis.close();                }            }catch(Exception ex) {                ex.printStackTrace();            }        }        return null;    }}

/**

 * 添加線程 * @param task */public static boolean submit(Runnable task){    try {        DEFAULT_EXECUTOR.execute(task);        return true;    } catch (Exception e) {        return false;    }}/** * 添加線程 * @param task * @param millis 嘗試間隔 */public static void submitTaskBlock(Runnable task,long millis){    while(!submit(task)){        try {            Thread.sleep(millis);        } catch (Exception e) {            e.printStackTrace();        }    }}/** * 關閉線程池 */public static void shutdown(){    DEFAULT_EXECUTOR.shutdown();}public static void waitToShutdown(){    DEFAULT_EXECUTOR.shutdown();    while(!DEFAULT_EXECUTOR.isTerminated()){        try {            Thread.sleep(1000);        } catch (InterruptedException e) {        }    }}public static void waitToShutdown(long time){    DEFAULT_EXECUTOR.shutdown();    try {        DEFAULT_EXECUTOR.awaitTermination(time, TimeUnit.MILLISECONDS);    } catch (Exception e) {    }}public static void shutdownNow(){    DEFAULT_EXECUTOR.shutdownNow();}/** * 添加線程 * @param task * @param millis 嘗試間隔 */public static void submitTaskBlock(Object obj,String method,Object param,long millis){    submitTaskBlock(new MethodRunner(obj, method, param),millis);}/** * 添加線程 * @param task */public static boolean submit(Object obj,String method,Object param){    return submit(new MethodRunner(obj, method, param));}/** * 添加線程 * @param task */public static boolean submit(ExecutorService executor,Runnable task){    try {        executor.execute(task);        return true;    } catch (Exception e) {        e.printStackTrace();        return false;    }}/** * 添加線程 * @param task * @param millis 嘗試間隔 */public static void submitTaskBlock(ExecutorService executor,Runnable task,long millis){    while(!submit(executor,task)){        try {            Thread.sleep(millis);        } catch (Exception e) {            e.printStackTrace();        }    }}/** * 關閉線程池 */public static void shutdown(ExecutorService executor){    executor.shutdown();}public static void waitToShutdown(ExecutorService executor){    executor.shutdown();    while(!executor.isTerminated()){        try {            Thread.sleep(1000);        } catch (InterruptedException e) {        }    }}public static void waitToShutdown(ExecutorService executor,long waitTime){    executor.shutdown();    try {        executor.awaitTermination(waitTime, TimeUnit.MILLISECONDS);    } catch (Exception e) {    }}public static void shutdownNow(ExecutorService executor){    executor.shutdownNow();}/** * 添加線程 * @param task * @param millis 嘗試間隔 */public static void submitTaskBlock(ExecutorService executor,Object obj,String method,Object param,long millis){    submitTaskBlock(executor,new MethodRunner(obj, method, param),millis);}/** * 添加線程 * @param task */public static boolean submit(ExecutorService executor,Object obj,String method,Object param){    return submit(executor,new MethodRunner(obj, method, param));}public static class BlockRejectedHandler implements RejectedExecutionHandler{    @Override    public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {         try {             executor.getQueue().put(r);         } catch (Exception e) {             throw new RuntimeException("block queue reject!");         }    }}public static class MethodRunner implements Runnable{    private Object obj;    private String method;    private Object[] param;    public MethodRunner(Object obj,String method,Object... param){        this.obj=obj;        this.method=method;        this.param=param;    }    @Override    public void run() {        ReflectUtil.invoke(obj, method, param);    }}public static class Run implements Runnable{    public String num;    public Run(String num){        this.num=num;    }    public void run(){        try {            Thread.sleep(3000);            System.out.println("execute:"+num);        } catch (Exception e) {        }    }}static boolean flag=true;public static void main(String[] args) {    new Thread(){        @Override        public void run() {            int i=0;            while(flag){                try {                    ThreadExecuteUtil.submitTaskBlock(ThreadExecuteUtil.PAD_DEAL_EXECUTOR,new Run("t1"+i),3000);                    i++;                } catch (Exception e) {                    e.printStackTrace();                    continue;                }

// System.out.println(i);
}
}
}.start();
}


本文轉載自:http://www.itdaan.com/blog/2018/08/01/3ad1295b6c021148208a40ad712390fc.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章