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("主线程退出-->消息发送完成") }
主线程发送完异步无返回值消息--开机命令--
主线程发送完异步无返回值消息--关机命令--
主线程退出-->消息发送完成
开机中...
已经开机...
--执行关机命令...
--已经关机....