`
zhangyu8374
  • 浏览: 94735 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Green Thread不比Native Thread差

阅读更多
在Ruby实现中,Ruby1.8采用的是Green thread,JRuby和XRuby采用的是Native thread,Rubinius既支持Green thread,也支持Native thread。Ruby1.9将由Green thread转向Native thread。Green thread有哪些不足呢?

在“Ruby Userspace Threads vs GUI tookits Roundup”中重点强调了Green Thread的一个不足:Blocking syscall将阻塞所有其余的线程,而且这个问题在GUI和网络开发中将随处碰到。另外,Green Thread不能有效挖掘多核和多CPU的性能。于是大家都把视线转向Native thread。我对Native thread不感冒,主要是因为shared state concurrency问题多多。具体有哪些,相信你看完“The problem with threads”就会很清楚了。

现在,Erlang很好的解决了Green Thread存在的问题。它没有采用m:1模式,而是采用了m:n模式。Erlang runtime以n个native thread运行,每个都有一个自己的调度器。而且,Erlang采用shared nothing concurrency,可以把Native Thread存在的问题都抛之脑后。

看来XRuby的thread实现可以好好借鉴一下Erlang的并发范式。在看了“The Futures of Ruby Threading”之后,更坚定了应该朝这方面努力。
分享到:
评论

相关推荐

    Green

    这些组件在不牺牲性能的情况下,可以显著降低运行时的电力需求。 3. 数据中心能源效率:绿色数据中心通过优化冷却系统、使用可再生能源、提高服务器利用率和采用虚拟化技术来减少能源消耗。例如,PUE(Power Usage ...

    ReactNative的颜色组件

    1. 颜色常量:库通常会提供一套常见的颜色常量,如`'red'`、`'green'`、`'blue'`等,便于快速设置元素背景色或文本颜色。 2. 颜色转换:开发者可以将颜色从一种格式转换为另一种,例如从十六进制转换为RGB,或者从...

    Threadx arm 移植代码

    Threadx是由Green Hills Software开发的一款高性能、可裁剪的RTOS,广泛应用于嵌入式系统,尤其在航空、医疗、工业控制等领域。它提供了一套高效的内核服务,如任务调度、同步、通信和内存管理,确保了实时系统的...

    react-native-svg,用于react native的svg库。.zip

    React Native SVG库是一个强大的工具,它允许开发人员在React Native应用程序中使用SVG(Scalable Vector Graphics)图形。这个库是开源的,因此开发者可以自由地查看、使用、修改源代码,同时也能够贡献自己的改进...

    Green Hills Tutorial使用方法培训PPT

    使用Green Hills的静态代码分析工具,如Code Integrity,可以检查代码的风格、潜在错误和不符合规范的地方。通过持续集成和静态分析,可以确保代码质量,并遵循最佳编码实践。 **七、跨平台开发** Green Hills的...

    GreenHills 2017.7 编译手册

    手册开头即强调了Green Hills公司对本手册内容不作任何明示或暗示的保证,包括但不限于商品性或适用于特定目的的适用性。这意味着使用本编译器和手册时,用户需自行承担风险,并且Green Hills保留了修订本手册并随时...

    GreenHills使用说明

    GreenHills工具是一款专业的嵌入式开发环境,主要使用于基于V850ES/FJ2微控制器的开发。其主要功能包括创建项目、添加现有文件、导入源代码、启动文件和链接文件,以及将程序下载到RAM中等。以下将详细介绍这些功能...

    green-thread-library:绿色线程库

    g线程 一个在用户空间(非内核模式)中运行的(绿色)线程库,使用信号中断在上下文之间进行交换。 使用POSIX的ucontext库在上下文之间交换。...包括green.h 就像使用pthreads一样使用该库! 编译时链接到gthread.lib

    acdsee pro_green

    《ACDSee Pro Green:图层管理利器》 在IT领域,图像处理是不可或缺的一环,而优秀的图像管理工具能够极大地提升工作效率。今天我们要探讨的是名为"acdsee pro green"的软件,它是一款专为图层管理打造的高效工具,...

    j2e_green

    此外,这种方式生成的.exe文件通常比原生的Java程序大得多,因为它们包含了整个JVM。 "j2e_green"的使用还涉及到一些高级选项,比如资源的定制、图标设置、内存配置等,这些可以进一步优化生成的.exe文件,使其更...

    Green Hills 操作系统安装指南

    ### Green Hills 操作系统安装指南知识点详述 #### 一、引言 - **文档目的:** 本文档旨在提供一套完整的Green Hills操作系统(INTEGRITY)安装指导,帮助用户顺利完成该操作系统的安装过程。 - **适用范围:** 本...

    react-native-lean-green

    《React Native Lean Green:利用TypeScript提升移动应用开发效率》 React Native Lean Green 是一个专为React Native开发者设计的项目模板,旨在通过引入TypeScript语言,提供更强大的类型检查和更好的开发体验,...

    GREEN-NET Framework

    GREEN-NET框架的关键在于它不单纯追求节能,而是将节能与系统性能相结合,在不影响系统服务质量和性能的前提下实现能效的优化。这种平衡是通过精心设计的资源管理策略和智能调度算法实现的,它们能够确保在系统负载...

    易语言模块Green.rar

    "易语言模块Green"是专门为易语言设计的一组功能扩展组件,它提供了额外的功能支持,帮助开发者更高效地编写易语言程序。 在易语言中,模块是一种封装特定功能的代码集合,可以看作是易语言程序的组成部分。"Green...

    GREEN

    标题中的"GREEN"可能指的是一个特定的字体名称或者与环保、绿色主题相关的设计项目。由于提供的信息非常有限,我将假设"GREEN"是一款字体,并基于这个假设来详细讲解关于字体的知识。 字体是计算机图形和排版领域的...

    Green代理软件

    Green代理软件

    Python调用GreenHills方法

    一种简单的方法是使用正则表达式来去除这些不相关的文本行。例如: ```python import re def clean_output(output): cleaned_output = re.sub(r'Output from 1st Python statement\(s\):\n', '', output) return ...

    On the Green rings of finite dimensional Hopf algebras

    标题中提到的“Green rings of finite dimensional Hopf algebras”指向的是在有限维Hopf代数背景下对Green环的研究。Hopf代数是一类代数结构,源于对量子群的研究,它在数学中被用于表示理论、代数几何以及数论等...

Global site tag (gtag.js) - Google Analytics