Javaマルチスレッド処理タスクのパッケージ

2950 ワード

最近会社のプロジェクトの多くの地方はマルチスレッドを使っていくつかの任務を処理して、論理コードとjavaマルチスレッドの処理コードが混合して、コードの可読性が超悪くて、今Javaマルチスレッドの関連する処理を抽出して、方面のコードの中で繰り返し使用します.よくないですね.レンガを撮ってください.
使い方は簡単で、2つの使い方があります
1.一連のタスクをマルチスレッド処理方法に直接渡し、処理結果を返す
コードは次のとおりです.
/**
 * Created with IntelliJ IDEA.
 *          
 * className: TaskMulThreadServiceTest
 *
 * @version 1.0
 *          Date Time: a
 *@author: ddys
 */
public class TaskMulThreadServiceTest extends TestCase implements ITaskHandle{

    public void testExecute() throws Exception {
        String [] taskItems = new String[100];
        for (int i=0;i<100;i++){
            taskItems[i]="  "+i;
        }
        IMulThreadService mulThreadService = new TaskMulThreadService(this);
        long start = System.currentTimeMillis();
        List result = mulThreadService.execute(taskItems);
        for (Boolean e : result){
            if(!e){
                System.out.println("      ");
            }
        }
        System.out.println("        ,  "+(System.currentTimeMillis()-start)+",     "+result.size());
    }

    /**
     * Created with IntelliJ IDEA.
     *     ,         
     * className: TaskMulThreadService
     *
     * @author: ddys
     * @version 1.0
     * Date Time:
     */
    public Boolean execute(String s) {
        System.out.println(Thread.currentThread().getId()+"      "+s);
        return true;
    }
}

2.クエリー・タスクのメソッドを添付し、このクエリー・タスク・メソッドとビジネス・メソッドを実装し、戻り処理結果を実行します.
コードは次のとおりです.
ate Time: a
 *@author: XWK
 */
public class SelectTaskMulThreadServiceTest extends TestCase implements ISelectTask{

    public void testExecute() throws Exception {
        IMulThreadService mulThreadService = new SelectTaskMulThreadService(this);
        long start = System.currentTimeMillis();
        List result = mulThreadService.execute();
        for (Boolean e : result){
            if(!e){
                System.out.println("      ");
            }
        }
        System.out.println("        ,  "+(System.currentTimeMillis()-start)+",     "+result.size());
    }
    /**
     * Created with IntelliJ IDEA.
     *     ,         
     * className: TaskMulThreadService
     *
     * @author: ddys
     * @version 1.0
     * Date Time:
     */
    public Boolean execute(String s) {
        System.out.println(Thread.currentThread().getId()+"      "+s);
        return true;
    }

    /**
     * @param 'a     
     * @return a    
     * @throws
     * @Title: a
     * @Description:       
     * @author ddys
     * @date 2015-11-15 21:09
     */
    public String[] getTaskItem() {
        String [] taskItems = new String[100];
        for (int i=0;i<100;i++){
            taskItems[i]="  "+i;
        }
        return taskItems;
    }
}