scala/ScalaBook/chapter-07/thread.scala

class PrintProgressMark(val mark: Char, 
                        val delay :Int) extends Thread {
  private var mark_ = mark
  private var delay_ = delay
  private var i = 0
  private val max = 100
  override def run(): Unit = 
    try {
      while (i <= max) {
        print(mark_)
        i += 1
        Thread.sleep(delay_)
      }
    } catch {
        case ex : InterruptedException => return
    }
}

object threadExample {
  def main(args: Array[String]) { 
    new PrintProgressMark('+', 40).start
    new PrintProgressMark('*', 100).start
  }
}