zoukankan      html  css  js  c++  java
  • Scala actor 简单示例

    package test.scala.lang.actor
    
    import scala.actors.Actor
    
    object TestScalaActor {
    
      def main(args: Array[String]): Unit = {
        testActor
        testActor2
      }
    
      // 通过扩展类创建actor
      def testActor = {
        //要启动一个actor, 需要先构造一个实例, 并调用start方法
        val actor = new HiActor
        actor.start()
    
        // 向actor发送消息
        actor ! "Hi"
        actor ! "Hii"
      }
    
      // 创建临时actor
      // 通过 Actor伴生对象 actor 方法创建和启动actor
      def testActor2 = {
    
        val actor2 = Actor.actor {
          while (true) {
            Actor.receive {
              case "Hi" => println("2Hello")
              case _    => println("2please say Hi")
            }
          }
        }
    
        actor2 ! "Hi"
        actor2 ! "Hii"
        
        
        val actor3 = Actor.actor{
          while(true) {
            Actor.receive{
              case MsgA => println("MsgA")
              case MsgB => println("MsgB")
              case _    => println("some message")
            }
          }
        }
        actor3 ! MsgA
        actor3 ! MsgB
        actor3 ! "Hi"
      }
    
    }
    
    case class MsgA()
    
    case class MsgB()
    
    // actor 扩展scala.actors.Actor,
    // 有一个抽象方法 act, 重写该方法制定该actor的行为
    class HiActor extends Actor {
    
      // act 方法 和 Java Runnable的run 方法类似
      def act() {
        while (true) {
          receive {
            case "Hi" => println("Hello")
            case _    => println("please say Hi")
          }
        }
      }
    
    }
    

      

  • 相关阅读:
    计算机视觉
    深度学习2
    pytorch
    Django笔记
    深度学习
    numpy&pandas
    信息安全与密码技术
    Win10 alt+f4默认关机修改
    (转)Spring Boot 解决跨域问题的 3 种方案
    用 alibaba 的 fastjson 将 list 或 map 转为 json 字符串
  • 原文地址:https://www.cnblogs.com/ihongyan/p/4815085.html
Copyright © 2011-2022 走看看