阅读更多

13顶
0踩

编程语言

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

2008-08-18 11:23 by 见习编辑 robbin 评论(6) 有8259人浏览
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汇编系列七、窗口程序原理及实现

    前言 学c语言的人天天面对黑框框,有木有?不知道是否想用c写一个窗口程序?我想应该也很希望吧,目前我见过的书中很少有介绍窗口程序设计,如果想写的话,还需要去网上、b站搜索,使用c写窗口程序其实挺麻烦的,需要了解Windows消息机制、GDI或者GDI+、还有各种控件,如Button,另外自带的控件都太难看,需要使用GDI或GDI+自己绘制,这样工作量又大了很多,所以现在很少有rj这种最"底层"的方式实现了就需要我不曾在c中大量写过, ...

  • C/C++ 从零实现一个windows窗口(非常详细)

    主要讲解用C/C++创建一个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位的

  • Windows c++界面开发初学(二)win32

    今天跟着微软的文档和一些博客写了个win32的hello world。 因为代码注释写的比较详细了就不加太多描述了。 这里放一下文档链接和博客链接: 微软文档:创建传统的 Windows 桌面应用程序 (c + +) 参考博客1:跟我一起玩Win32开发(2):完整的开发流程 参考博客2:Win32 API编程简介Demo程序 1、典型的Windows程序结构 图来自参考博客2 ...

  • WIN32界面开发之一:初试加载背景界面

    前言:在实际开发中,虽然有已经成形的界面库DUILIB,但DUILIB无法加载异形窗体,对PNG图片的支持不到位,最终我下决心,自己开发一套界面库,利用GDI+完成2D和3D功能,在这里,我将要记录下,我所做的界面开发的过程,并将它们整理成博客分享给大家,一步步来学习吧。 内容概要:这篇主要实现的功能是加载一个背景界面,向大家介绍下,如何用GDI+加载背景界面的问题,然后就是如何在指定位置托

  • win32 最基本编程和应用程序框架

    现在市场上出现了很多应用程序框架,比如窗体程序,如MFC,.net framwork , VB , delphi,举不胜数。其实,这些并不是开发windows应用程序必需的东西,windows在底层是为我们开放了一套API函数库,使用这套函数库,其实我们也能构建出一套功能强健的windows应用程序。下面,我重点说明一下windows的窗口应用程序,其实,windows窗口程序的核心就是窗

  • VC++ WIN32编程-基本窗口

    #include <windows.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow){    TCHAR szAppName[...

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

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

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

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

  • Win32 API 窗口编程模板

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

  • 用32位汇编语言写一个窗口程序

    用WIN32来写窗口程序需要编写两个文件,一个是资源脚本文件:*.rc,一个是汇编源文件:*.asm。将这两个文件编译链接在一起就可以得到我们的窗口程序。而资源脚本文件中包含了对菜单,加速键,图标,光标,位图等资源的定义,源文件中包含如何使用这些资源的代码。 首先我们来看资源脚本文件中菜单和加速键以及图标光标的定义。 #include <resource.h> #define...

  • 使用WIN32汇编语言实现一个基本windows窗口的过程分析

    一个常规的windows窗口一般都是一些一样的构造,你如果想要更改一些个性化的设置,你可以在这个一般的模板伤添砖加瓦,构造自己比较喜欢的类型,下边就分析一下一般的windows窗口的一般模板。 一. 首先看一下一般的windows窗口都包含什么框架(NO picture you say a J8.....上图上图)如下(罗云斌win32汇编书中92页的一张图): 该图简单的

  • 单张、批量识别图片中文字(写入txt文件、窗口视图创建、打包.exe文件)(百度文字识别SDK+Python的GUI之tklinker+打包pyinstaller)

    昨天我姐问我有没有软件可以批量识别图片上的文字,她在帮客户做资料整理,但是用的方法只能一张一张上传识别,不仅效率低还浪费时间。 ​我就找了找批量识别的软件,下载下来觉得:嗯?不错,界面也挺好,小东西做的还挺别致。但是,识别三张就停止了,提示非最新版本要联系客服升级之类的,妥妥的套路,果断删除。又找了一个,嗯?界面更加好看一点儿,人家就很直接,三张之后提示购买会员,还显示了几种VIP的费用,很“人性”嘛。 ​但是,在这个万物开源的互联网时代,让程序员掏腰包买软件是不可能滴,反正我是不会,啊哈哈。我首想到了反编译,把三张的限制取消,之前看过一些ios逆向工程的东西,这些应该都是通的。搜索了一番

  • 一个汇编写的窗口,供大家借鉴

    用汇编写的一个windows窗口,供大家借鉴学习!!

  • 汇编实现简单的消息框

    <br />编写一个简单的Windows消息框,包括标题与正文的显示。<br />.386 .model flat,stdcall option casemap:none includelib user32.lib MessageBoxA PROTO :dword,:dword,:dword,:dword MsgBox equ <MessageBoxA> NULL equ 0 MB_OK equ 0 .stack 4096 .data SzTitle byte '第一个GU

  • Win32汇编语言编程-弹出消息框

    回忆了一下汇编语言的项目,通过写一个 Windows 程序,程序运行时将弹出一个消息框并显示"Assembly is great!"来回忆Windows API的使用方法。 一、Windows API是什么?如何使用? Windows 为编写应用程序提供了大量的资源。其中最重要的是Windows API (Application Programming Interface)。 Windows AP...

Global site tag (gtag.js) - Google Analytics