Actor发生异步无返回值消息

package com.it.Actor

import scala.actors.Actor

class MyActor extends Actor{

  override def act(): Unit = {
    //死循环进行阻塞
    while (true){
      //receive 方法是一个偏函数 匹配不到不会报错
      receive{
        //接收到什么指令就干什么
        case "--开机命令--" =>{
          println("开机中...")
          Thread.sleep(2000)
          println("已经开机...")
        }
        case "--关机命令--" =>{
          println("--执行关机命令...")
          Thread.sleep(2000)
          println("--已经关机....")
          //系统自动退出
          System.exit(0)
        }
      }
    }
  }
}

object MyActor extends App {
  //创建一个actor对象
  private val actor = new MyActor
  //启动
  actor.start()
  //发送 异步无返回值消息
  actor ! "--开机命令--"
  println("主线程发送完异步无返回值消息--开机命令--")
  actor ! "--关机命令--"
  println("主线程发送完异步无返回值消息--关机命令--")
  println("主线程退出-->消息发送完成")
}

 

主线程发送完异步无返回值消息--开机命令--
主线程发送完异步无返回值消息--关机命令--
主线程退出-->消息发送完成
开机中...
已经开机...
--执行关机命令...
--已经关机....

 

posted @ 2018-08-09 10:36  马鞍山  阅读(303)  评论(0编辑  收藏  举报