Java 多线程处理任务的封装

开发 后端
最近公司项目很多地方使用多线程处理一些任务,逻辑代码和java多线程处理代码混合在一起,造成代码的可读性超级差,现在把Java多线程相关的处理抽出来,方面代码中重复使用。抽的不好,欢迎大家拍砖

最近公司项目很多地方使用多线程处理一些任务,逻辑代码和java多线程处理代码混合在一起,造成代码的可读性超级差,现在把Java多线程相关的处理抽出来,方面代码中重复使用。抽的不好,欢迎大家拍砖

使用方法很简单,有两种使用方法

1.直接传递一批任务给到多线程处理方法,返回处理结果

代码如下:

/** 
 * Created with IntelliJ IDEA. 
 * 测试多线程处理任务 
 * className: TaskMulThreadServiceTest 
 * 
 * @version 1.0 
 *          Date Time: a 
 *@author: ddys 
 */ 
public class TaskMulThreadServiceTest extends TestCase implements ITaskHandle<String,Boolean>{ 
 
    public void testExecute() throws Exception { 
        String [] taskItems = new String[100]; 
        for (int i=0;i<100;i++){ 
            taskItems[i]="任务"+i; 
        } 
        IMulThreadService<String,Boolean> mulThreadService = new TaskMulThreadService(this); 
        long start = System.currentTimeMillis(); 
        List<Boolean> 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
    } 

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.

2.附带一个查询任务的方法,实现这个查询任务方法和业务处理方法,然后执行返回处理结果

代码如下:

ate Time: a 
 *@author: XWK 
 */ 
public class SelectTaskMulThreadServiceTest extends TestCase implements ISelectTask<String,Boolean>{ 
 
    public void testExecute() throws Exception { 
        IMulThreadService<String,Boolean> mulThreadService = new SelectTaskMulThreadService(this); 
        long start = System.currentTimeMillis(); 
        List<Boolean> 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; 
    } 

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.


责任编辑:王雪燕 来源: codeceo
相关推荐

2009-08-13 09:07:36

Java多线程

2023-08-02 09:29:40

任务池TaskPool

2023-08-01 16:35:48

鸿蒙ArkUI应用开发

2022-02-21 18:43:42

Spring封装多线程

2011-05-31 13:29:40

Android 多线程

2010-03-17 09:33:30

Java多线程方案

2010-04-14 09:20:26

.NET多线程

2024-04-30 12:56:00

多线程.NET

2009-03-12 10:52:43

Java线程多线程

2009-07-17 17:29:13

多任务多线程

2010-03-16 14:20:57

Java多线程调试

2024-06-12 12:50:06

2024-09-26 10:51:51

2021-09-11 15:26:23

Java多线程线程池

2021-12-26 18:22:30

Java线程多线程

2009-06-29 17:49:47

Java多线程

2023-03-24 15:44:52

Java多线程工具

2021-09-09 07:16:00

C#多线程开发

2009-06-29 18:03:15

Java多线程线程的生命周期

2023-11-22 08:37:40

Java线程池
点赞
收藏

51CTO技术栈公众号