scala day3 wip
This commit is contained in:
parent
0a92c9cec9
commit
683e77dd4f
41
scala/day3.scala
Normal file
41
scala/day3.scala
Normal file
@ -0,0 +1,41 @@
|
||||
import scala.io._
|
||||
import scala.actors._
|
||||
import Actor._
|
||||
|
||||
object PageLoader {
|
||||
def getPageSize(url: String) = Source.fromURL(url).mkString.length
|
||||
}
|
||||
|
||||
val urls = List("https://www.amazon.com/",
|
||||
"https://www.twitter.com/",
|
||||
"https://www.google.com/",
|
||||
"https://www.cnn.com/")
|
||||
|
||||
def timeMethod(method: () => Unit) = {
|
||||
val start = System.nanoTime
|
||||
method()
|
||||
val end = System.nanoTime
|
||||
|
||||
println("Method took " + (end - start)/1000000000.0 + " seconds.")
|
||||
}
|
||||
|
||||
def getPageSizeSequentially() = {
|
||||
for(url <- urls) {
|
||||
println("Size for " + url + ": " + PageLoader.getPageSize(url))
|
||||
}
|
||||
}
|
||||
|
||||
def getPageSizeConcurrrently() = {
|
||||
def caller = self
|
||||
|
||||
for(url <- urls) {
|
||||
actor { caller ! (url, PageLoader.getPageSize(url)) }
|
||||
}
|
||||
|
||||
for(i <- 1 to urls.size) {
|
||||
receive {
|
||||
case (url, size) =>
|
||||
println("Size for " + url + ": " + size)
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user