Scala求因子
2016-05-03 00:00
267 查看
import java.util.concurrent.{Callable} import java.util.concurrent.Future import com.dt.util.{ThreadUtils} /** * Created by hadoop on 2016/5/3. */ object ThreadTest { val executors = ThreadUtils.newDaemonCachedThreadPool("work thread") /** * 数据分片 * @param num * @param slice * @return */ def divNum(num: Int, slice: Int = 10): IndexedSeq[(Int, Int)] ={ val step = (num + slice) / slice val result = for(i <- 1 to step) yield{ val a = slice *(i - 1) + 1 val b = a + (slice -1 ) if(b < num) (a,b) else (a,num) } result.filter(_._1 < num) } /** * 在区间搜索 * @param number * @param start * @param end * @return */ def search(number: Int, start: Int, end: Int)= { for(i <- start to end) yield{ if(number % i == 0) i else 0 } } def submitJob(num: Int, slice: Int = 10): IndexedSeq[Future[String]] ={ val range = divNum(num, 200) for(x <- range) yield{ executors.submit(new Callable[String] { override def call(): String = search(num, x._1, x._2).filter(_.!=(0)).mkString(",") }) } } def main(args: Array[String]) { val num = 9 val futures = submitJob(num, 1) for(future <- futures){ val result = future.get() if(result.length > 0) println(result) } println(divNum(90,20)) println("任务执行完成哈哈") } }
相关文章推荐
- Windows下Scala环境搭建
- Windows7下安装Scala 2.9.2教程
- Scala代码实现列出Hadoop 文件夹下面的所有文件
- ClassNotFoundException:scala.PreDef$
- sbt创建web项目
- XML 文件解析--含Unicode字符的XML文件
- Scala 学习随笔
- Scala 小程序记录(学习期间的代码片段)
- Spark机器学习(二) 局部向量 Local-- Data Types - MLlib
- Spark机器学习(三) Labeled point-- Data Types
- 分分钟掌握快速排序(Java / Scala 实现)
- Scala极速入门
- Spark初探
- Scala实现REST操作
- Scala method call syntax
- 关于Scala多重继承的菱形问题
- Scala 高阶函数(high-order function)剖析
- Scala Monad Design Pattern
- Spray.io搭建Rest服务
- Spray.io搭建Rest — 支持Twirl模板并部署