首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >巴列利纳的线程与反应式编程

巴列利纳的线程与反应式编程
EN

Stack Overflow用户
提问于 2020-09-06 14:55:19
回答 1查看 145关注 0票数 3

我刚刚开始通过阅读https://ballerina.io/文档来跟踪芭蕾舞演员。当我尝试运行Hello并行时,我不知道它在内部是如何工作的?

代码语言:javascript
复制
 import ballerina/io;
    public function main() {
        @strand {thread: "any"}
        worker w1 {
            io:println("Hello, World! #m");
        }
    
        @strand {thread: "any"}
        worker w2 {
            io:println("Hello, World! #n");
        }
        @strand {thread: "any"}
        worker w3 {
            io:println("Hello, World! #k");
        }
    }

  1. 当我运行这段代码时,在这4个线程后面运行了多少个线程?
  2. 线程在java中是非常昂贵的,当我们同时创建一个线程时,JVM会创建操作系统级别的线程,并且会消耗大量内存。芭蕾舞者是否也遵循同样的方式(原生线程模型)?

  1. ,我们可以在芭蕾舞中使用轻量级线程吗?就像将由Project Loom(fibers)
  2. Does引入的芭蕾舞者一样,芭蕾舞者完全支持反应性programming?
  3. Does,芭蕾舞者提供了与MongoDB、Redis和Cassandra连接的包,而没有阻塞?我是说反应方式
EN

回答 1

Stack Overflow用户

发布于 2020-09-07 03:13:40

  1. Ballerina运行在VM启动时配置的线程池上。线程计数可以使用环境变量BALLERINA_MAX_POOL_SIZE进行配置,如果没有显式提供,则默认为线程计数=(逻辑cpu计数X2)。

  1. Ballerina运行时调度程序在预先配置的线程池上工作,它与本机线程没有一对一的对应关系,控制流(通常称为线程)称为strand,许多链将映射到单个OS线程。这非常类似于green threadsuser level threads或Project织机纤维。

  1. 只得到轻量级线程。

据我所知,开发反应性编程是为了驯服复杂异步系统编程带来的复杂性,类似于反应性编程,

  1. 支持用异步等待风格(类似于C#)编写异步系统的另一种方法。

  1. 大多数巴列利纳库都是非阻塞的(不阻塞操作系统线程),这意味着使用该库的巴列利纳程序看起来像使用直接前向阻塞代码编写的代码,但是在引擎盖下,它们是由巴列利纳计划核复用的。所以,如果你指的是反应式编程范式,那么不是,但如果你指的是非阻塞性和简单性(没有回调等),那么是的。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63765488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档