Scala 的 Actor 是否有非阻塞 IO 开源实现?

2023-11-24

我需要处理相当大的文件(500Meg+ zip 文件)。

Scala 的 actor 是否有非阻塞 IO 开源实现?


如果我的问题是正确的,那么您需要文件的非阻塞 IO。那么我有坏消息要告诉你。

NIO

Java6 中的 Java NIO 在处理文件时仅支持阻塞操作。你可能会从事实中注意到这一点FileChannel不执行SelectableChannel界面。 (但是,NIO 确实支持套接字的非阻塞模式)

有NIO.2(JSR-203)规范旨在克服 java.io 和 NIO 的许多当前限制,并为文件上的异步 IO 提供支持。据我了解,NIO.2 将与 Java 7 一起发布。

这些是 Java 库的限制,因此您在 Scala 中也会受到这些限制。

Actors

Actors 基于 Doug Lea 的 Fork-Join 框架(至少在分支 2.7.x 之前)版本2.7.7)。引用一则来自FJ任务类:

没有什么可以真正阻止 防止您在 FJTask 中阻塞,并且 非常短的等待/阻塞完全 表现良好。但FJTasks不是 旨在支持任意 同步,因为没有办法 暂停和恢复个别任务 一旦他们开始执行。 FJTasks 也应该是有限的 持续时间——它们不应包含 无限循环。 FJ可能的任务 需要执行阻止操作,或者 长时间持有锁,或者 永远循环可以代替创建正常 java Thread 对象将执行此操作。 FJTasks 的设计初衷并不是为了 支持这些事情。

FJ 库在 Scala 中得到了增强,提供了一种统一的方式,允许参与者根据工作线程的数量和“库活动”像线程或基于事件的任务一样运行(您可以在技术报告中找到解释“统一线程和事件的参与者”作者:菲利普·哈勒和马丁·奥德斯基)。

解决方案?

但毕竟如果你在一个 Actor 中运行阻塞代码,它的行为就像它是一个线程一样,所以为什么不使用普通的Thread用于阻止读取并将事件从该线程发送到基于事件的参与者?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Scala 的 Actor 是否有非阻塞 IO 开源实现? 的相关文章

  • 自定义 NIO 文件系统无法通过 SBT 的测试任务加载

    为了进行测试 我使用内存中的 NIOFileSystem执行 memoryfs https github com openCage memoryfs 我以前已经利用过它 并且它似乎运行良好 例如梅文 然而 现在 在SBT项目中 不可能初始化
  • 我想使用 EtherPad(或克隆版本)。我的站点正在运行 Ruby on Rails。 API 还是本地安装?

    我想在我的网站上使用 etherpad 界面 两个问题 1 是否有任何带有 etherpad api 的网站可以让我远程调用 2 如果没有 安装scala并让两者同时运行有多麻烦 Thanks 查看http piratepad net ht
  • c++ OpenMP 关键:“单向”锁定?

    考虑以下串行函数 当我并行化代码时 每个线程都会从并行区域内调用此函数 未显示 我正在尝试使这个线程安全and高效 快速 float get stored value or calculate if does not yet exist i
  • Scala 集合不一致

    为什么 Scala Collections API 中的集合和列表之间缺乏一致性 例如 有不可变的 Set 但也有可变的 Set 如果我想使用后者 我可以简单地这样做 val set Set A set new A 但是 本身不存在可变列表
  • cython.parallel.prange 中的 cython 共享内存 - 块

    我有一个函数foo它以指向内存的指针作为参数 并写入和读取该内存 cdef void foo double data data some index int some value double do something dependent
  • Scala:具有复杂结构的树插入尾递归

    我正在 scala 中创建自定义对象树 并且我的插入方法引发堆栈溢出 因为它不是尾递归 但是 我不太清楚如何使其尾递归 我见过使用 累加器 变量的相关示例 但它们要么是只能相乘和覆盖的整数之类的东西 要么是我在适应树时遇到困难的列表 这是我
  • 宏:knownDirectSubclasses 被嵌套类型破坏?

    我有一个宏 它枚举密封特征的直接子类型 import scala reflect macros Context import language experimental macros object Checker def apply A U
  • 如何使用 OpenMP 并行化数组移位?

    如何使用 OpenMP 并行化数组移位 我已经尝试了一些方法 但没有得到以下示例的任何准确结果 该示例旋转 Carteira 对象数组的元素 用于排列算法 void rotaciona int i Carteira aux this gt
  • OpenMP 与浮点范围并行

    我有以下程序 int main double sum 0 pragma omp parallel for reduction sum for double x 0 x lt 10 x 0 1 sum x x 当我编译它时 我收到错误inva
  • 使用 Akka 玩 2.5 - 找不到参数超时的隐式值:akka.util.Timeout

    我正在尝试使用 Play 2 5 测试 Akka 但遇到了一个似乎无法解决的编译错误 我正在关注 Play 文档中的此页面 https playframework com documentation 2 5 x ScalaAkka http
  • 框架时代的封装

    在我以前的 C 工作中 我们总是非常小心地封装成员变量 并且仅在绝对必要时才将它们作为属性公开 我们有非常具体的构造函数来确保您在使用对象之前完全构造了该对象 如今 使用 ORM 框架 依赖注入 序列化等 似乎您最好只依赖默认构造函数并在属
  • 了解 ASP.NET 应用程序文件夹

    ASP NET 中的应用程序文件夹用于存储对运行网站至关重要的各种元素 我想更深入地了解这些文件夹 特别是文件夹的可访问性 根据有关的文章ASP NET 网站布局 http msdn microsoft com en us library
  • Source.getLines 中的默认参数错误 (Scala 2.8.0 RC1)

    假设我运行 Scala 2 8 0 RC1 以下 scala 代码应该打印出文件 c hello txt 的内容 for line lt Source fromPath c hello txt getLines println line 但
  • 并行应用程序的可变与不可变[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在我正在编写的应用程序中 我需要编写大量基本类型 这些类型很可能是不可变的 但我想知道并行应用程序中可变类型与不可变类型的比较如何 您可以对可变
  • Java 8 Stream - 并行执行 - 不同的结果 - 为什么?

    假设我有一个List
  • 错误:协变类型 A 出现在逆变位置

    我试图写一个不可变的Matrix A 班级 我希望该类是协变的A但是当我把 在 前面A编译器开始抱怨类中的某些操作 以下是我的相关子集Matrix类 实际类比以下子集大 5 倍左右 class Matrix A private val co
  • Scala 和变量中的模式匹配

    我是 Scala 新手 有点想知道模式匹配是如何工作的 想象一下我有以下内容 case class Cls i Int case b Cls i gt Ok case e Cls gt Ok case f Cls gt Ok case s
  • 使用 scala 集合 - CanBuildFrom 麻烦

    我正在尝试编写一个接受任何类型集合的方法CC 并将其映射到一个新的集合 相同的集合类型但不同的元素类型 我正在挣扎 基本上我正在尝试实施map but 不在集合本身上 问题 我正在尝试实现一个带有签名的方法 它看起来有点像 def map
  • 类型级编程有哪些示例? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我不明白 类型级编程 是什么意思 也无法使用Google找到合适的解释 有人可以提供一个演示类型级编程的示例吗 范式的解释和 或定义将
  • Scala 解析器组合器的运算符优先级

    我正在研究需要考虑运算符优先级的解析逻辑 我的需求并不太复杂 首先 我需要乘法和除法比加法和减法具有更高的优先级 例如 1 2 3 应视为 1 2 3 这是一个简单的例子 但你明白了 我需要将更多自定义标记添加到优先级逻辑中 我可以根据此处

随机推荐

  • 有没有办法在 React Native 中全局设置字体?

    我需要创建一种适用于所有内容的自定义字体Text整个应用程序中的组件 有没有办法在 React Native 中全局设置字体 一种方法是为 RN 创建一个包装器Text说 MyTextCustomFont const MyTextCusto
  • Android 获取图片文件路径

    我有一个可以制作图片并上传的应用程序 上传需要照片的文件路径 但我无法获取 这是我的代码 public void maakfoto View v Intent cameraIntent new Intent android provider
  • 使用 C# winform 的 Zeromq pub/sub 示例

    我正在尝试创建一个在发布 订阅模型中使用 ZeroMQ clrzmq net 绑定 x86 通过 nuget 的 C Winform 应用程序 经过大量搜索 我只能找到独立的 C 示例 其中代码使用 while 语句无限期地处理新消息 当我
  • 是否可以借用结构体的一部分作为可变的而其他部分作为不可变的?

    如果结构体的字段是私有的 是否可以借用结构体的一部分作为可变的 而另一部分作为不可变的 fn main let mut ecs EntityComponentSystem new for e id in ecs get entities w
  • 使用 cqlsh 复制非常大的 cassandra 表时出现 PicklingError

    当我尝试使用以下命令将表复制到 cassandra 时 copy images from images csv 我收到错误 PicklingError Can t pickle
  • 编译器优化能否消除在 for 循环条件中重复调用的函数?

    我正在阅读有关哈希函数的内容 我是一名中级计算机科学学生 并发现了这一点 int hash const string key int tableSize int hasVal 0 for int i 0 i lt key length i
  • 如何向用户授予 SSRS 浏览器对文件夹的权限,而不授予他们访问根目录的权限

    当用户浏览到 http ssrs server reports 时 除非他们拥有根文件夹的浏览器权限 否则他们的访问会被拒绝 如果他们在文件夹 Dept 1 Reports 上有浏览器 则他们可以成功浏览到 http ssrs server
  • MVC5 Razor html.dropdownlistfor 当值在数组中时设置选择

    我正在使用 C 和 NET Framework 4 6 1 开发 ASP NET MVC 5 应用程序 我有这个View model MyProject Web API Models AggregationLevelConfViewMode
  • 如何递归解压嵌套的 ZIP 文件?

    假设嵌套 ZIP 文件深处有一个秘密文件 即 zip 文件内的 zip 文件内的 zip 文件 等等 zip 文件的名称为1 zip 2 zip 3 zip etc 我们不知道 zip 文件嵌套的深度 但可能有数千个 循环遍历所有文件直到最
  • 在 Sails.js 中处理数据库环境配置

    我遇到的问题与以下引用有关官方文档 注意 如果模型使用了与适配器的任何连接 则与该适配器的所有连接都将加载到 sails lift 上 无论模型是否实际使用它们 在上面的示例中 如果模型配置为使用 localMysql 连接 则 local
  • 将远程 github 存储库的更改合并到本地存储库

    我前段时间在 github 上分叉了一个存储库 做了一个小更改并将更改推回我的 github 分叉 此后原始存储库已更改 我想将原始存储库中的更改合并到我的分支中 我对 git 和 github 都很陌生 我需要具体的命令来操作 git r
  • 为什么 apt-get 功能在 Mac OS X v10.9 (Mavericks) 的终端中不起作用?

    我当时正在看this 正如您所看到的 我被告知要输入的第一个命令是 sudo apt get install python setuptools 当我这样做时 它输出 sudo apt get command not found 我不知道为
  • -I GCC 中的标志(Linux)

    我找到了一个带有 Makefile 的源文件包 我浏览了它 在 CFLAG 变量中 有一个 FLAG I 我在网上搜索过 但找不到它实际的作用 它与 C 文件中包含的库文件有关吗 stdio h unistd h pthread h 请指出
  • Javascript 获取对象属性名称

    我传递了以下对象 var myVar typeA option1 one option2 two 我希望能够拔出钥匙typeA从上面的结构来看 这个值每次都会改变 所以下次它可能会改变typeB 所以我想知道是否有办法让我做类似以下伪代码的
  • LibGDX 中的 AssetManager

    我正在尝试使用AssetManagerLibGDX 中的类 我了解它是如何工作的 但我正在尝试实现一个加载屏幕 我已遵循AssetManagerTest java file here 但我很难弄清楚如何让它正常工作 有人能指出我正确的方向吗
  • 是否可以更改 ToolStripMenuItem 工具提示字体?

    我有一个动态填充的 ContextMenuStrip 其中每个 ToolStripMenuItem 都有一个工具提示的格式化文本 而且 为了使该文本对用户有意义 我必须使用等宽字体 例如 Courier New 默认字体是常规的非等宽字体
  • 当字段为空时,远程属性不会触发

    我在用着RemoteAttribute对于我表单上的特定字段 其目的并不重要 重要的是 每当字段发生更改时 它都需要触发验证操作 这对我来说工作得很好 除非该字段更改为空白 我用谷歌搜索过这个但没有找到结果 有谁知道如果RemoteAttr
  • 带有 lapply 的内部 S3 泛型

    我有一个 S3 通用函数 我希望将其作为包的内部部分 如果可能的话我宁愿不导出它 一个有趣的缺点是 似乎lapply无法找到或使用正确的 S3 方法 有谁知道这种行为背后的原因 下面是一个可重现的示例 其中涉及从我的 github 安装虚拟
  • 在导航控制器中单击后退按钮时会调用哪个方法?

    我想在导航控制器中单击后退按钮时保存数据库 所以我会在方法中插入代码 在导航控制器中单击后退按钮时会调用什么方法 要执行您要求的操作 请查看UINavigationControllerDelegate协议 即方法 void navigati
  • Scala 的 Actor 是否有非阻塞 IO 开源实现?

    我需要处理相当大的文件 500Meg zip 文件 Scala 的 actor 是否有非阻塞 IO 开源实现 如果我的问题是正确的 那么您需要文件的非阻塞 IO 那么我有坏消息要告诉你 NIO Java6 中的 Java NIO 在处理文件