Scala 异步并发编程库 ZIO

Scala 异步并发编程库 ZIO

Apache
Scala
跨平台
2019-09-10
红薯

ZIO 是一个零依赖的 Scala 库,用于异步并发编程。

主要特性:

  • 高性能. 比 Scala 的 Future 的性能高 100 倍以上
  • 类型安全. 使用强大的 Scala 编译器在编译时捕获 Bug
  • 并发. 可轻松构建并发应用,没有死锁、竞争以及复杂度
  • 异步. 无论是异步还是同步代码编写逻辑都一样
  • 资源安全. 不会产生资源泄露,包括线程
  • 可测试
  • 弹性
  • 实用

示例代码:

import zio.App
import zio.console._

object MyApp extends App {

  def run(args: List[String]) =
    myAppLogic.fold(_ => 1, _ => 0)

  val myAppLogic =
    for {
      _    <- putStrLn("Hello! What is your name?")
      name <- getStrLn
      _    <- putStrLn(s"Hello, ${name}, welcome to ZIO!")
    } yield ()
}

 

的码云指数为
超过 的项目
加载中

评论(4)

首席xx师
首席xx师
很强!!
二的基本算合格
二的基本算合格
真的假的~
zzeric
zzeric
100倍是什么概念
赵二伟24740
赵二伟24740
100倍的意思就是官方是猪

暂无资讯

暂无问答

Lua4.0 编译入口

解决上一篇的问题,上代码了。 C 语言程序的入口为 main 函数,Lua 编译器的入口为 luac.c 文件里的 main 函数。 先来看一下 main 函数: int main(int argc, const char* argv[]) {  ...

2015/08/10 12:46
182
0
Lua5.0 词法分析

语法分析器会调用词法分析器。 在语法分析之前,简单的看一下词法分析。 内存管理和 ZIO 输入在词法分析中会用到,因为它们相对比较孤立,不影响主流程的阅读。 上一个版本也看过它们了,这里...

2015/09/01 20:54
225
0
Lua4.0 lua_dofile,lua_dostring

这两个函数的定义都位于 ldo.c 中,看看这两个函数都做了什么事儿? 先来看一下 lua_dofile 执行文件 LUA_API int lua_dofile (lua_State *L, const char *filename) {   int sta...

2015/08/21 13:12
3.7K
0
Lua4.0 内存分配

先来看一下 lua 的内存分配。 内存分配的文件是 lmem.h 及对就的 lmem.c。 内存分配方法为 luaM_realloc 和 luaM_growaux。 其它的内存操作接口是定义的宏,通过调用上面的两个基本方法实现。...

2015/08/11 13:08
393
0
Lua4.0 ZIO缓冲区

来看一下 ZIO 缓冲。 词法分析读一个一个的字符就是从它读的。 或者 umdump 时也是从它读字符(一个 char 字节)的。 缓冲区隔离了下层数据源的不同,对上层提供一致的读取接口。 相关的代码...

2015/08/12 14:02
111
0
Lua5.0 语法解析之路

上回说到 luaL_loadfile ,这次把它的调用展开到语法分析器 parser. 先一下它的函数定义 LUALIB_API int luaL_loadfile (lua_State *L, const char *filename) {   LoadF lf;   ...

2015/08/31 13:16
286
0
Lua4.0 词法分析

在说语法分析之前,先说一下词法分析。 因为语法分析时会调用词法分析。 词法分析相关的文件为 llex.h,llex.c。 先来看一下词法分析的头文件。 RESERVED 保留字枚举。 Token 结构体,词法分析...

2015/08/13 14:09
142
0
网站导航

网站导航

2015/06/05 22:05
2.1K
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部