Scala深入浅出进阶经典 第69讲:Scala并发编程react、loop代码实战详解

package com.dt.scalaInAction.demo_069

import scala.actors.Actor
import scala.actors.Actor._
import java.net.InetAddress
import java.net.UnknownHostException

/**
 * Scala并发编程react、loop代码实战详解
 */
case class Net(name: String, actor: Actor)

object NameResolver extends Actor {
    def act = {
        //线程的重用
    		/*react {
        		case Net(name, actor) => 
        		    actor ! getIp(name)
        		    act
        		case "EXIT" => println("Name resolver exiting.")
        		case msg =>
        		    println("Unhandler message : " + msg)
        		    act
    		}*/
      
      loop {
          react {
            case Net(name, actor) =>
                sender ! getIp(name)
            case msg =>
                println("Unhandled message : " + msg)
          }
      }
        
        
    }
    
    def getIp(name: String) : Option[InetAddress] = {
         try {
             println(InetAddress.getByName(name))
             Some(InetAddress.getByName(name))
         } catch {
           case _: UnknownHostException => None
         }
    }
}
object Actor_More_Effective {
    def main(args: Array[String]): Unit = {
        NameResolver.start
        NameResolver ! Net("www.baidu.com", self)
        
        println(self.receiveWithin(1000){case x => x})
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值