scala的Actor发送消息/接收消息

Actor发送消息/接收消息
我们之前介绍Actor的时候,说过Actor是基于事件(消息)的并发编程模型,那么Actor是如何发送消息和接收消息的呢?
使用方式
发送消息
我们可以使用三种方式来发送消息:
在这里插入图片描述
例如:
要给actor1发送一个异步字符串消息,使用以下代码:
actor1 ! "你好!"
接收消息
Actor中使用receive方法来接收消息,需要给receive方法传入一个偏函数 { case 变量名1:消息类型1 => 业务处理1, case 变量名2:消息类型2 => 业务处理2, ... }
在这里插入图片描述
示例
示例说明
创建两个Actor(ActorSender、ActorReceiver)
ActorSender发送一个异步字符串消息给ActorReceiver
ActorReceive接收到该消息后,打印出来
在这里插入图片描述
参考代码:

  object ActorSender extends Actor {
    override def act(): Unit = {
      // 发送消息
      while(true) {
        ActorReceiver ! "hello!"
        TimeUnit.SECONDS.sleep(3)
      }
    }
  }

  object ActorReceiver extends Actor {
    override def act(): Unit = {
      // 持续接收消息
      while(true) {
        receive {
          case msg:String => println("接收到消息:" + msg)
        }
      }
    }
  }

  def main(args: Array[String]): Unit = {
    ActorReceiver.start()
    ActorSender.start()
  }

在这里插入图片描述
结果:
在这里插入图片描述

发布了158 篇原创文章 · 获赞 339 · 访问量 23万+

猜你喜欢

转载自blog.csdn.net/qq_45765882/article/details/104336257