本文整理汇总了Scala中scala.concurrent.forkjoin.ForkJoinPool类的典型用法代码示例。如果您正苦于以下问题:Scala ForkJoinPool类的具体用法?Scala ForkJoinPool怎么用?Scala ForkJoinPool使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ForkJoinPool类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Scala代码示例。
示例1: EventClientActor
//设置package包名称以及导入依赖的类
package com.bob.scalatour.akka.cluster
import akka.actor.{Props, ActorSystem, ActorRef, Actor}
import com.typesafe.config.ConfigFactory
import scala.concurrent.duration._
import scala.concurrent.ExecutionContext
import scala.concurrent.forkjoin.ForkJoinPool
class EventClientActor extends Actor {
implicit val ec: ExecutionContext = ExecutionContext.fromExecutor(new ForkJoinPool())
val events = Map(
"2751" -> List(
"""10.10.2.72 [21/Aug/2015:18:29:19 +0800] "GET /t.gif?installid=0000lAOX&udid=25371384b2eb1a5dc5643e14626ecbd4&sessionid=25371384b2eb1a5dc5643e14626ecbd41440152875362&imsi=460002830862833&operator=1&network=1×tamp=1440152954&action=14&eventcode=300039&page=200002& HTTP/1.0" "-" 204 0 "-" "Dalvik/1.6.0 (Linux; U; Android 4.4.4; R8207 Build/KTU84P)" "121.25.190.146"""",
"""10.10.2.8 [21/Aug/2015:18:29:19 +0800] "GET /t.gif?installid=0000VACO&udid=f6b0520cbc36fda6f63a72d91bf305c0&imsi=460012927613645&operator=2&network=1×tamp=1440152956&action=1840&eventcode=100003&type=1&result=0& HTTP/1.0" "-" 204 0 "-" "Dalvik/1.6.0 (Linux; U; Android 4.4.2; GT-I9500 Build/KOT49H)" "61.175.219.69""""
),
"2752" -> List(
"""10.10.2.72 [21/Aug/2015:18:29:19 +0800] "GET /t.gif?installid=0000gCo4&udid=636d127f4936109a22347b239a0ce73f&sessionid=636d127f4936109a22347b239a0ce73f1440150695096&imsi=460036010038180&operator=3&network=4×tamp=1440152902&action=1566&eventcode=101010&playid=99d5a59f100cb778b64b5234a189e1f4&radioid=1100000048450&audioid=1000001535718&playtime=3& HTTP/1.0" "-" 204 0 "-" "Dalvik/1.6.0 (Linux; U; Android 4.4.4; R8205 Build/KTU84P)" "106.38.128.67"""",
"""10.10.2.72 [21/Aug/2015:18:29:19 +0800] "GET /t.gif?installid=0000kPSC&udid=2ee585cde388ac57c0e81f9a76f5b797&operator=0&network=1×tamp=1440152968&action=6423&eventcode=100003&type=1&result=0& HTTP/1.0" "-" 204 0 "-" "Dalvik/v3.3.85 (Linux; U; Android L; P8 Build/KOT49H)" "202.103.133.112"""",
"""10.10.2.72 [21/Aug/2015:18:29:19 +0800] "GET /t.gif?installid=0000lABW&udid=face1161d739abacca913dcb82576e9d&sessionid=face1161d739abacca913dcb82576e9d1440151582673&operator=0&network=1×tamp=1440152520&action=1911&eventcode=101010&playid=b07c241010f8691284c68186c42ab006&radioid=1100000000762&audioid=1000001751983&playtime=158& HTTP/1.0" "-" 204 0 "-" "Dalvik/1.6.0 (Linux; U; Android 4.1; H5 Build/JZO54K)" "221.232.36.250""""
),
"2753" -> List(
"""10.10.2.8 [21/Aug/2015:18:29:19 +0800] "GET /t.gif?installid=0000krJw&udid=939488333889f18e2b406d2ece8f938a&sessionid=939488333889f18e2b406d2ece8f938a1440137301421&imsi=460028180045362&operator=1&network=1×tamp=1440152947&action=1431&eventcode=300030&playid=e1fd5467085475dc4483d2795f112717&radioid=1100000001123&audioid=1000000094911&playtime=951992& HTTP/1.0" "-" 204 0 "-" "Dalvik/1.6.0 (Linux; U; Android 4.0.4; R813T Build/IMM76D)" "5.45.64.205"""",
"""10.10.2.72 [21/Aug/2015:18:29:19 +0800] "GET /t.gif?installid=0000kcpz&udid=cbc7bbb560914c374cb7a29eef8c2144&sessionid=cbc7bbb560914c374cb7a29eef8c21441440152816008&imsi=460008782944219&operator=1&network=1×tamp=1440152873&action=360&eventcode=200003&page=200003&radioid=1100000046018& HTTP/1.0" "-" 204 0 "-" "Dalvik/v3.3.85 (Linux; U; Android 4.4.2; MX4S Build/KOT49H)" "119.128.106.232"""",
"""10.10.2.8 [21/Aug/2015:18:29:19 +0800] "GET /t.gif?installid=0000juRL&udid=3f9a5ffa69a5cd5f0754d2ba98c0aeb2&imsi=460023744091238&operator=1&network=1×tamp=1440152957&action=78&eventcode=100003&type=1&result=0& HTTP/1.0" "-" 204 0 "-" "Dalvik/v3.3.85 (Linux; U; Android 4.4.3; S?MSUNG. Build/KOT49H)" "223.153.72.78""""
)
)
val ports = Seq("2751", "2752", "2753")
val actors = scala.collection.mutable.HashMap[String, ActorRef]()
ports.foreach(port => {
val config = ConfigFactory.parseString(s"akka.remote.netty.tcp.port=${port}")
.withFallback(ConfigFactory.parseString("akka.cluster.roles = [collector]"))
.withFallback(ConfigFactory.load())
val system = ActorSystem("event-cluster-system", config)
actors(port) = system.actorOf(Props[EventCollector], name = "collectingActor")
})
Thread.sleep(30000)
context.system.scheduler.schedule(0 millis, 5000 millis) {
ports.foreach(port => {
events(port).foreach(line => {
println("RAW: port=" + port + ", line=" + line)
actors(port) ! RawNginxRecord("host.me:" + port, line)
})
})
}
override def receive: Receive = {
case _ =>
}
}
示例2: SForkJoin
//设置package包名称以及导入依赖的类
package com.bob.scalatour.sthread
import scala.concurrent.forkjoin.{ForkJoinPool, RecursiveTask}
object SForkJoin {
class CountTask(start: Int, end: Int) extends RecursiveTask[Int] {
val MAX = 1000
override def compute(): Int = {
val conCompute = (end - start) <= MAX
conCompute match {
case true => {
(start to end).sum
}
case false => {
val middle = (start + end) / 2
val task1 = new CountTask(start, middle)
val task2 = new CountTask(middle + 1, end)
task1.fork()
task2.fork()
task1.join() + task2.join()
}
}
}
}
def main(args: Array[String]) {
val forkJoinPool = new ForkJoinPool()
val task = new CountTask(1, 10000)
val rs = forkJoinPool.submit(task)
println(rs.get())
if (task.isCompletedAbnormally) {
println(task.getException)
}
forkJoinPool.shutdown()
}
}
示例3: Main3
//设置package包名称以及导入依赖的类
package de.trash
import scala.concurrent.forkjoin.ForkJoinPool
import scala.collection.parallel.ForkJoinTaskSupport
import scala.util.control.Breaks._
import java.util.concurrent.atomic.AtomicLong
import java.util.concurrent.atomic.AtomicBoolean
import scala.BigInt
object Main3 extends App {
val clauses = List[List[Short]](List(3,3,3),List(2,1,-1),List(-3,-2,-3),List(2,1,2))
//println(clauses.transpose)
val nVar : Int = 3
var i : Int =0;
val iVar = (for {i <- 0 until nVar} yield Math.pow(2, i).toLong)
val maxNumber = BigInt(Math.pow(2, nVar).toLong)
var number: AtomicLong = new AtomicLong(0)
var end: AtomicBoolean = new AtomicBoolean(false)
val fjpool = new ForkJoinPool(1)
val customTaskSupport = new ForkJoinTaskSupport(fjpool)
val t = (BigInt(0) to BigInt(maxNumber+""))
//t.tasksupport = customTaskSupport
t.foreach({ x => {
if(!end.get()){
if({
clauses.forall({ c => {
println(c+" "+x)
if(x.toLong==4){
println("yap")
}
!(0 to 2).forall({ i => {
val v : Int = c(i)
println(v)
if(v>0){
println(iVar(v - 1))
}else if(v<0){
println(iVar(-v - 1))
}
var ret = true
!(v > 0 && (x.toLong & iVar(v - 1)) > 0) && !(v < 0 && (x.toLong & iVar(-v - 1)) == 0)
}