阅读更多

13顶
0踩

编程语言

原创新闻 Rails 2.2要改成线程安全的了!

2008-08-18 11:23 by 见习编辑 robbin 评论(6) 有8219人浏览
Ruby on Rails官方博客发布的信息,Josh Peek加入了Rails的核心开发团队。Josh Peek正在开发的一个项目是让Rails框架变成线程安全的版本,该项目参加了今年的Google Summer Of Code大赛。

DHH宣布将在Rails 2.2版本当中合并Josh Peek的关于Rails线程安全的项目工作成果,这意味者Rails下一个版本,即2.2版本将支持多线程方式运行Rails。

我们知道,截止Rails 2.1版本,Rails仍然是以单进程内单线程方式运行,如果Rails改为单进程内多线程方式运行,会带来什么好处呢?

1、节省物理内存
由于多个线程在一个进程内可以共享内存空间地址,可以节省大量物理内存空间地址。

2、可以并发响应更多请求
一个进程内多个线程的调度可以由Mongrel等支持多线程的Ruby应用服务器管理,因此可以根据请求负载,创建更多线程响应请求,提高并发处理能力

但是以多线程方式运行Rails,并非革命性的进步,多线程也会带来很多问题:

1、ruby进程的GC过程会阻塞进程内所有线程的运行,GC比多进程方式带来更大的影响

2、多线程可以共享进程内资源,可能会导致程序员滥用多线程造成多个线程资源争用问题

3、多线程内任何一个线程的问题都可能影响整个进程的稳定运行。


但是多线程的Rails对于JRuby无疑是一个天大的好消息!由于JVM本身就是支持内核多线程的,因此多线程的Rails运行在JRuby上面是一个天然的绝配,不但可以大幅度减少JRuby的内存消耗,而且可以切实有效提供JRuby的并发处理性能。

总之,Rails 2.2支持多线程将为我们打开Rails的另外一扇门。
13
0
评论 共 6 条 请登录后发表评论
6 楼 无明 2008-08-19 09:50
有个疑问,CRuby的GC本来就不是很成熟,跟JVM比差了好多,以多线程的方式跑Rails,会不会导致性能颠簸的比较厉害?性能差一点对数据库应用来说问题并不算太大,但要是稳定性差了,那就不划算了
5 楼 inosin 2008-08-19 09:50
什么时候发布?
4 楼 hozaka 2008-08-18 18:24
终于等到这一天了!!
3 楼 fkpwolf 2008-08-18 14:02
最后变成跟java一样庞大臃肿
2 楼 fxsjy 2008-08-18 13:08
没必要,多进程不是好好的吗?
1 楼 QuakeWang 2008-08-18 11:39
国外的讨论,Rails的线程安全意味着什么:
http://blog.headius.com/2008/08/qa-what-thread-safe-rails-means.html

这对于rails来说是一个巨大的改动,期待2.2的发布。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • C++ Win32界面编程中的窗口风格要点总结(附源码)

    最近我们遇到了几个与窗口风格相关的问题,因为未设置指定的窗口风格或者错误设置了某些窗口风格导致了窗口出现了一些bug。本文借此机会将窗口风格的相关要点进行详细的总结,在此分享出来,给大家提供一些借鉴和参考。

  • c++11封装win32界面库

    c++11封装win32界面库

  • win32窗口编程

    在Windows系统上,从零开始创建窗口应用程序。

  • 汇编实验:屏幕窗口程序(代码有较为详细的注释)

    实验3.4 屏幕窗口程序 1.题目:屏幕窗口程序 2.实验要求: 在屏幕上开出三个窗口,它们的行列坐标按照教材要求。光标首先定位在右窗口最下面一行的行首(15,50),如从键盘输入字符,则显示在右窗口,同时也显示在下窗口的最下面一行。若需要将字符显示于左窗口,则先按下键,接着再从键盘输入字符,字符就会从左窗口的最下行开始显示,同时下窗口也显示出左窗口的内容。如若再按下键,输入字符就会接在先前...

  • 汇编如何建立窗口程序

    用Windows32下面的汇编开发工具+window32的API函数来做window窗口程序之后,自然会提高我们的汇编语言功底和window低层的工作原理及一些API函数的特性windows做程序开发,如果是窗口程序我们只要关注于两个方面:1控制windows消息2制作windows界面(也就是资源文件中的一切对象)window 32汇编开发资源清单下载网站:开发工具选用masm32下载网站htt

  • WIN32 SDK界面编程

    WIN32 SDK界面编程   在介绍win32 sdk界面编程,先需要了解win32 编程。熟悉win32编程之后,就可以轻松进行win32 界面编程。 一、什么是win32 编程 Win32编程,指的是用Window提供的API(Application Programming Interface)为Window编写应用程序。 之所以称之为Win32,是因为现在的Window都是32位的

  • win32窗口编程实例代码,自己敲出来的,仅供新人参考

    // mydemo1.cpp : 定义应用程序的入口点。 // #include "stdafx.h" #include "mydemo1.h" #define WM_MYMSG WM_USER+10 #define WM_MYMSG_ WM_USER+11 #define WM_MYMSG_A WM_USER+12 #define MAX_LOADSTRING 100

  • [源码和文档分享]基于WIN32 API界面编程实现的Flappy Bird小游戏

    一、简介 Flappy bird是一款卷轴类的躲避游戏。设计中可用空格操控游戏的开始和暂停,通过控制向上的方向使小鸟不断向上飞,但是不能落到地面和上边界也不能撞到障碍物,否则游戏结束弹出“Game Over!”的窗口。游戏可以通过坚持的时间控制障碍物移动的速度,从而加大游戏难度。 参考文档和完整的文档和源码下载地址: ...

  • windows编程笔记【一】win32 API下第一个窗口

    本笔记源自windows游戏编程大师技巧第二版2.4章,记做学习随笔。 使用vs2017环境编译。 dos下程序使用main作为开始函数,Windows程序均已WinMain()开始。 编译下列代码: #include <Windows.h> #include <windowsx.h> #define WIN32_LEAN_AND_MEAN int ...

  • win32c语言编程实例,实例分析一个简单的Win32程序

    本文较为详细的分析了一个Win32程序的组成、结构、实现方法及运行原理,对于进行Windows程序设计有很好的借鉴参考价值。分享给大家供大家参考之用。具体分析如下:一、Windows程序与普通C或C++程序的不同学过C或C++等语言的人都知道,我们写的程序都一个入口,main函数,但是在Win32程序里,我们的入口函数又是什么呢?它是怎么样运行的,跟我们用C或C++写的控制台程序又有什么不同呢?我...

  • 跟我一起玩Win32开发(2):完整的开发流程

    上一篇中我给各位说了一般人认为C++中较为难的东西——指针。其实对于C++,难点当然不局限在指针这玩意儿上,还有一些有趣的概念,如模板类、虚基类、纯虚函数等,这些都是概念性的东西,几乎每一本C++书上都会介绍,而平时我们除了会接触到纯虚函数外,其他的不多用。纯虚函数,你可以认为与C#中的抽象方法或接口中的方法类似,即只定义,不实现。好处就是多态,发何处理,由派生类来决定。 在开始吹牛之前,我先推

  • Win32 API 窗口编程模板

    #include //窗口函数声明 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM );    //入口函数 WinMain() int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,                      

  • win32开发(创建子窗口)

    【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】    在win32中,有的时候需要创建额外的子窗口。所谓子窗口的概念,就是窗口本身不会超出母窗口的边界,所有的操作都是在母窗口里面完成的。子窗口可以用os提供的默认类型来完成,也可以自定义类型来完成。常用的子窗口有BUTTON、COMBOBOX、EDIT、LISTBOX、STATIC、SCROL

  • Win32汇编创建窗口菜单例子

    用Win32汇编代码建立了一个窗口,并设置其菜单,通过选择菜单的不同项目实现改变窗口背景。通过这个例子,你可以学到 1 用API创建窗口 2 用API创建并设置窗口的菜单 3 改变窗口背景(这个问题困惑过我相当一段时间:-))

  • 亲测正确版-win32汇编贪吃蛇源码-win22汇编游戏源码

    win32汇编实现贪吃蛇 win32汇编多文件程序设计 亲测正确版-win32汇编贪吃蛇源码-win22汇编游戏源码 网络流传的很多没法使用,亲测让大家放心使用 汇编语言实现动态链表 以对话框做窗口模板并做为主界面 开发工具 ollydbg + MASM32 + gVim + NMAKE + ResEd

  • vs2017编写的32位汇编窗口程序

    用vs2017调试汇编程序的模板,样例在VS2017下编译通过,是用于调试汇编程序的起点

  • 汇编语言:简单图形界面的绘制教程

    最近自己在学习汇编语言,看到了汇编语言绘制的图形界面,感觉很强大;自己以后的工作也要写一些小工具,于是,自己在看了网上很多的资料和别人分享的心得,也学习着自己绘制了一个图形界面。这里我要特别的鸣谢eva.li!         我的这个图形界面包括3个部分,分别是:欢迎界面、主界面以及结束界面。截图如下: 1,欢迎界面 2,主界面 3,结束界面         主

  • Win32汇编教程八 图形界面的操作

    --------------------------------------------------------------------------------有关GDI和位图GDI 即图形设备界面,是 Windows 最重要的部分之一,它大部分由 GDI32.DLL 库中的 API 来处理,GDI 的主要目的之一是支持与设备无关的图形编程,对于 Dos 下的图形编程,很多人可能“心有余悸”,因为

  • Windows程序设计:第一个窗口

    .dml {border:2px solid green;width:200px;background-color:#eeeeee;margin:0 0 0 0}.ddm {background-color:#cccccc;margin-left:0mm} 目录: 1.窗口程序 2.分析       注册窗口类别

  • 精通Win32 API编程-Windows图形界面编程

    Windows的API(Application Programming Interface,应用程序编程接口),是Windows 操作系统提供给应用程序的大量函数,学习本课程,不仅可以掌握Windows界面编程,开发华丽的Windows桌面运用程序,也可以为MFC框架的学习奠定扎实的基础,同时是否熟练的掌握Windows API开发,也是企业考量优秀程序员一个非常重要的指标!

Global site tag (gtag.js) - Google Analytics