问题标签 [actor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1997 浏览

scala - 在scala中的另一个线程上执行一个简单的任务

我想知道是否有一种方法可以在没有太多开销的 scala 中的另一个线程上执行非常简单的任务?

基本上我想制作一个可以处理执行任意数量的任务的全局“执行器”。然后我可以使用 executor 来构建额外的结构。

此外,如果客户端不必考虑阻塞或非阻塞因素,那就太好了。

我知道 scala 演员库是建立在 Doug Lea FJ 的东西之上的,而且他们在有限的程度上支持我想要完成的事情。但是,据我了解,我将不得不预先分配一个“演员池”来完成。

我想避免为此创建一个全局线程池,因为据我了解,它在细粒度并行性方面并不是那么好。

这是一个简单的例子:

现在是使用 exec 的示例:

最后运行示例(可能需要执行几次,以便 HotSpot 可以预热):

0 投票
2 回答
911 浏览

security - Scala 远程 Actor 安全性

什么是(或一种)推荐的方式来实现 Scala 远程参与者的安全性(对允许与该参与者交谈的远程节点进行身份验证,以及对讨论内容进行加密)?有没有人这样做过;效果如何?

  • SSL...

  • 一些Java库...

  • 一些JSR ...

  • 自定义序列化...

  • 只有VPN可以解决这个问题......

???

0 投票
1 回答
433 浏览

sockets - 如何控制 Scala 远程演员的 TCP_NODELAY 设置?

我正在使用 Scala 的远程参与者,但往返时间(即使是一条微不足道的消息)是 80 毫秒,可能是由于底层套接字没有禁用 TCP/IP Nagle 算法(也称为 TCP_NODELAY),或者至少有人这样做有一些 Java RMI 经验的人告诉我。

我在客户端中为获取到远程参与者的链接所做的一切就是

有什么方法可以获取底层套接字并调用java.net.Socket.setTcpNoDelay()它吗?

0 投票
2 回答
6296 浏览

scala - Scala 演员 - 最糟糕的做法?

我对在 Scala 中使用演员感到有点不安全。我已经阅读了有关如何做事的文档,但我想我还需要一些 DON'T 规则才能随意使用它们。我想我害怕我会以错误的方式使用它们,我什至不会注意到它。

你能想到一些东西,如果应用的话,会导致破坏 Scala 演员带来的好处,甚至是错误的结果?

0 投票
3 回答
1561 浏览

scala - 在 Scala Actor 中进行空闲处理的最简单方法是什么?

我有一个 scala 演员,只要客户请求它,它就会做一些工作。当且仅当没有客户端处于活动状态时,我希望 Actor 进行一些后台处理。

最简单的方法是什么?我可以想到两种方法:

  1. 生成一个超时的新线程并定期唤醒actor。一种直接的方法,但我想避免创建另一个线程(以避免额外的代码、复杂性和开销)。

  2. Actor 类有一个 reactWithin 方法,可用于从 Actor 本身超时。但是文档说该方法不会返回。所以,我不确定如何使用它。

编辑; 澄清:

假设后台任务可以分解成可以独立处理的更小的单元。

0 投票
3 回答
4822 浏览

scala - 如何为actor指定线程池

我有一个使用全局线程池的现有 java/scala 应用程序。我想开始在项目中使用演员,但希望应用程序中的所有内容都使用同一个池。

我知道我可以设置参与者使用的最大线程数,但更愿意共享线程池。这是否必要/合理,是否可以指定参与者的线程池?

如果不可能/不推荐,在已经使用线程的应用程序中集成参与者时是否有任何经验法则?

谢谢。

0 投票
3 回答
1532 浏览

scala - Singleton Scala 演员?

简单的问题。我可以这样做:

还是演员必须是具有实例的类?

0 投票
2 回答
433 浏览

scala - 用于向 Scala Actors 发送消息的符号或案例类?

在 Scala Actor 示例中,我看到了将无参数消息发送给 Actor(例如this)的位置,创建了case classes(或case objects),然后将其用作消息。符号也可以工作,看起来更整洁,并且在阅读了一本关于 Erlang 的书之后,看起来更自然。我假设符号平等适用于远程参与者。

对于带有参数的消息,案例类将是显而易见的选择,所以消息类型之间的一致性可能是一个问题?

有任何理由采用这两种方法吗?

0 投票
3 回答
1741 浏览

scala - 在 Scala 演员中访问共享资源的正确方法

在 Java 中,可以同步访问多线程环境中所需的共享资源的方法或块。

我想知道这样做的“Scala Actors”方式是如何工作的。

假设我有一个java.sql.Connection我希望提供线程安全访问的对象连接池。我将它实现为一个接收消息并向发送者发送回连接的参与者。

似乎有三种方法可以做到这一点:

  1. 使用未来
  2. 利用!?
  3. 有需要Connection也是演员的班级

代码:

未来版本似乎最干净,除了我可以永远阻止的事实。

有什么想法,或者我对此的整个概念是错误的吗?

0 投票
3 回答
693 浏览

scala - 垃圾收集 scala 演员

场景:我有这个代码:

MyActor 实例是否被垃圾收集?如果不是,我如何确保它是?如果我创建了一个临时演员(使用“演员”方法),那个演员是 GCed 吗?