我尝试用实现一个基于Scala的actor API的计时器,当前线程执行元(Actor.self)作为计时器,一个匿名执行元完成需要及时完成的工作。我有以下Scala程序
import scala.actors.Actor.self
import scala.actors.TIMEOUT
object Main {
def main(args: Array[String]): Unit = {
val thiz = self
actor {
// do heavy work here
thiz ! "finish"
}
我是scala的新手。在学习Actor时,我尝试将其扩展为节省一行def:
import scala.actors.Actor
import Actor._
class Actoo(actoo: =>Unit) extends Actor {
def act() {actoo}
}
object run extends Application {
/*
// this one runs well
val a = new Actor {
def act() {
receive { case 1 => print
我正在尝试运行一些我已经成功地在各种条件下运行了几个月。我使用的是运行Java 7的应用程序的scala 2.11.7,正如我所说的,相同的代码已经工作了几个月。在最近的情况下,我得到以下情况:
java.lang.ClassCastException: interface akka.actor.Scheduler is not assignable from class akka.actor.LightArrayRevolverScheduler
at akka.actor.ReflectiveDynamicAccess$$anonfun$getClassFor$1.apply(Dynami
我对Scala非常陌生,而且对Java也太生疏了,除了完全的新手之外,我不会把自己当作其他任何东西。因此,我正在采取简单的步骤来学习它。
在查看角色时,我尝试了一些方法,但遇到了许多NoClassDefFound错误。最终,我决定拿一个书的例子,并在其上构建,而不是调试我的第一次尝试。令人惊讶的是:书中的例子并没有像预期的那样工作!
下面是O‘’Reilly的Scala编程示例:
import scala.actors.Actor
class Redford extends Actor {
def act() {
println("A lot of what acting
我将跟随Scala130.3版(p589)进行编程。在这里,它解释了你可以使用'self‘作为当前线程的参与者来调试repl中的参与者。但是,当我使用Scala 2.9.1时,线程在接收时挂起。
$ scala -unchecked -deprecation
Welcome to Scala version 2.9.1.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_26).
Type in expressions to have them evaluated.
Type :help for more information.
我正在尝试使用apache工作台工具基于角色模型来加载我的spray http客户端。表现不是很好。更重要的是,当我将并发级别增加到200-300左右时,我看到了几个与记录器相关的错误。
代码片段
val result = for {
response <- GlobalObject.io.ask(HttpRequest(GET,URL)).mapTo[spray.http.HttpResponse]
} yield response
result Oncomplete{
case Success(response) => doSomethi
在阅读了关于在Scala的角色中使用react的文章后,我认为如果没有多个react挂起,react应该会共享同一个线程,但事实似乎并非如此。
import scala.actors.Actor
import scala.actors.Actor._
class SleepyReactor extends Actor {
def act() {
loop {
react {
case x => {
println("reacting to %s on thre
我正在使用Scala中的akka角色。我想知道是否有一种方法可以让actor在处理收到的消息时定期检查其邮箱中是否有其他消息,并且跟随此消息可以改变其变量。
一个类似以下的方案:
class Actor1 (constructors){
def receive={
case "go" => run() //the actor starts
case "alter variables" // a new message is stashed in mailbox
}
def run={
我正在尝试将元素插入到可变的Map中,当我尝试时,我得到了以下异常:
java.lang.ArrayIndexOutOfBoundsException: 62388
at scala.collection.mutable.HashTable$class.resize(HashTable.scala:255)
at scala.collection.mutable.HashTable$class.scala$collection$mutable$HashTable$$addEntry0(HashTable.scala:151)
at scala.collection.mutable.Ha
我正在尝试实现曼宁的"Akka in Action“一书中的"Up and Running" example的Java版本。它是一个简单的基于Actor模型的Http服务器,用于保存(仅在内存中)和检索一些事件。我对保存事件没有任何问题。但是在我的参与者系统中查询事件(所有事件)时,我确实遇到了一个问题。 这是所有TicketSeller的父参与者(后来负责管理每个事件的状态)的相关代码(我放了三个点,而不是我认为与我的问题无关的代码)。 public class BoxOffice extends AbstractActor {
...
priva
所以我想写一些看似阻塞的网络代码,而不是真正阻塞线程。我将在网上发送一些数据,并有一个“队列”的响应,这些响应将通过网络返回。我编写了一个非常简单的概念证明,灵感来自于在这里找到的演员教程中的生产者/消费者示例:
问题是,使用接收似乎占用了一个线程,所以我想知道是否有任何不接受一个线程,仍然得到‘阻塞感觉’。这是我的代码示例:
import scala.actors.Actor._;
import scala.actors.Actor;
case class Request(val s:String);
case class Message(val s:String);
class Co