# sim-forkjoin **Repository Path**: mloine/sim-forkjoin ## Basic Information - **Project Name**: sim-forkjoin - **Description**: simforkjoin是一个简易版的forljoin并行任务注解,用于解决springboot项目下对大量数据单线程处理的性能问题,通过一个注解将任务进行多线程拆分处理,以提高处理性能 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 7 - **Created**: 2021-03-29 - **Last Updated**: 2022-07-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # simforkjoin #### 介绍 simforkjoin是一个简易版的forljoin并行任务注解,用于解决springboot项目下对大量数据单线程处理的性能问题,通过一个注解将任务进行拆分处理,以提高处理性能 #### 使用教程 1. 引入依赖 ``` cn.langpy simforkjoin 1.0 ``` 2. 在需要并行化的方法加上注解@ForkJoin 加了注解以后,在执行的过程中,该方法会自动被拆分成多个任务执行,而不需要人为考虑任务的拆分以及合并结果的过程 ```java @Forkjoin public List test(List param){ ... } ``` #### 注意事项 ##### 1. @Forkjoin的内部参数 ###### 1.1 threshold > threshold表示每个任务处理的数量,默认为400,小于threshold的数据将不会被拆分 ###### 1.2 executor > 使用自定义的线程池,当默认的线程池无法满足需求的时候,可以自定义 ###### 1.3 isReturn > @Forkjoin修饰的方法是否有返回值,默认有返回 ##### 2. @Forkjoin修饰的方法参数 ###### 2.1 要求方法参数的第一个值为List,且不能为空 #### 应用场景 1. 比如有一个List类型的集合list,需要需要对list中的每个元素进行处理,然后返回处理以后的结果,但是由于list的size太大,处理速度慢,需要将list进行并行化处理,并将结果汇总,就可以使用 ```java @Forkjoin public List test(List list){ for(int i=0;i V1.0-SNAPSHOT: > #### 特别说明 本项目不会像传统的Fork/join一样将子任务再进行拆分,比如有一1000条数据量的任务,按照threshold进行划分成多个任务以后不会再进行子任务拆分