scala day3 wip

This commit is contained in:
Max Hohlfeld 2023-05-17 15:00:12 +02:00
parent 0a92c9cec9
commit 683e77dd4f

41
scala/day3.scala Normal file
View 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)
}
}
}