scala/ScalaBook/chapter-07/thread2.scala

class PrintProgressMark2(val mark: Char, 
                        val delay :Int) extends Runnable {
  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 threadExample2 {
  def main(args: Array[String]) { 
    var plus = new PrintProgressMark2('+', 40)
    var asterisk = new PrintProgressMark2('*', 100)
    new Thread(plus).start()
    new Thread(asterisk).start()
  }
}