因为CRuby(MRI)本身不支持原生多线程,所以想试一下其他ruby解释器实现对原生多线程的支持.于是安装rubinius折腾一下:)

在rubinius官网下载2.4.1源代码,然后驾轻就熟首先bundle,然后./configure一切正常,在rake最后关头出现错误,提示rubinius内部文件夹中若干文件找不到;奇怪的是再次执行rake后,还是报错,但是文件夹中出现了上次未找到的文件,进去看了一下貌似内容不太对,只有Gemfile和一些README之类的文件,并没有源代码之类的文件.多次执行rake,发现文件夹中文件越来越多,但rake总是不成功.

开始怀疑是源代码过旧,于是从github中clone最新版本2.5.x,下载失败几次后终于成功鸟,一百多兆,解压缩后大了一倍多;然后按部就班,发现在执行./configure时下载了很多gem,于是抱有希望鸟...可是rake时还是报错,错误相同.照理不应该啊!不可能再是源代码的问题,多半是笨猫系统的问题!

静下心来,错误最后的一些细节引起了本猫的注意:隐约一些utf8转换神马ascii8失败之类的词眼云云飘来...忽然联想到:难道是PATH中有中文的原因吗?果不其然,fk!换为全english的path后一切清净了;编译时间不短也不长,最后还有若干UnitTest需要运行测试...剩下的就简单鸟:rake install,再错,加权限后ok!

下面上测试代码:

#!/usr/bin/ruby

$x = 0
Thread_proc = ->{i=0;($x+=1;i+=1) while(i<10000)} 

def make_t(blk)
	Thread.new(&blk)
end

t0 = make_t(Thread_proc)
t1 = make_t(Thread_proc)

t0.join
t1.join

puts "$x last is #{$x}"

在MRI和rbx分别5次结果如下:

MRI:

wisy@wisy-ThinkPad-X61:~/src/ruby_src$ ruby a.rb
$x last is 20000
wisy@wisy-ThinkPad-X61:~/src/ruby_src$ ruby a.rb
$x last is 20000
wisy@wisy-ThinkPad-X61:~/src/ruby_src$ ruby a.rb
$x last is 20000
wisy@wisy-ThinkPad-X61:~/src/ruby_src$ ruby a.rb
$x last is 20000
wisy@wisy-ThinkPad-X61:~/src/ruby_src$ ruby a.rb
$x last is 20000

rbx:

wisy@wisy-ThinkPad-X61:~/src/ruby_src$ rbx a.rb
$x last is 17234
wisy@wisy-ThinkPad-X61:~/src/ruby_src$ rbx a.rb
$x last is 17845
wisy@wisy-ThinkPad-X61:~/src/ruby_src$ rbx a.rb
$x last is 11626
wisy@wisy-ThinkPad-X61:~/src/ruby_src$ rbx a.rb
$x last is 14554
wisy@wisy-ThinkPad-X61:~/src/ruby_src$ rbx a.rb
$x last is 16098

结论很简单,印证了本篇的主题.

ubuntu14.04下安装rubinius测试原生线程的更多相关文章

  1. Ubuntu14.04下安装Hadoop2.5.1 (单机模式)

    本文地址:http://www.cnblogs.com/archimedes/p/hadoop-standalone-mode.html,转载请注明源地址. 欢迎关注我的个人博客:www.wuyudo ...

  2. 二、Ubuntu14.04下安装Hadoop2.4.0 (伪分布模式)

    在Ubuntu14.04下安装Hadoop2.4.0 (单机模式)基础上配置 一.配置core-site.xml /usr/local/hadoop/etc/hadoop/core-site.xml ...

  3. Ubuntu14.04下安装Flash Player

    Ubuntu14.04下安装Flash Player youhaidong@youhaidong:~$ sudo apt-get install flashplugin-nonfree [sudo] ...

  4. Ubuntu14.04下 安装p4c

    参考: Github p4c README Ubuntu14.04下 安装p4c 这里提供一个直接安装p4c的脚本:install_p4c.sh. 1.git clone下来p4c: $ git cl ...

  5. Ubuntu14.04下安装Libsvm,并使用Libsvm

    (1)Ubuntu14.04下安装Libsvm 转载:https://blog.csdn.net/katrinawj/article/details/78915874 一.下载: 网址:http:// ...

  6. ubuntu14.04下安装ffmpeg

    ubuntu14.04下安装ffmpeg 一.安装各种依赖包 1.yasm(libx264需要依赖yasm) sudo apt-get install yasm 2.libx264 sudo apt- ...

  7. 在Ubuntu14.04下安装Docker CE(1) - repository篇

    从2017年3月开始,Docker开始分为社区版本和企业版,也就是Docker CE和Docker EE, 原来Ubuntu14.04下,通过sudo apt-get install docker.i ...

  8. ubuntu14.04下安装cudnn5.1.3,opencv3.0,编译caffe及配置matlab和python接口过程记录

    已有条件: ubuntu14.04+cuda7.5+anaconda2(即python2.7)+matlabR2014a 上述已经装好了,开始搭建caffe环境. 1. 装cudnn5.1.3,参照: ...

  9. ubuntu14.04下安装爬虫工具scrapy

    scrapy是目前准备要学习的爬虫框架,其在ubuntu14.04下的安装过程如下: ubuntu14.04下默认安装了2.7的python以及setuptools,若未安装,可通过下面指令安装: s ...

随机推荐

  1. 第一行代码阅读笔记---AndroidMainfest.xml分析

    按照这本书的指引,我随作者一样创建了一个安卓应用,开始了安卓开发的启程. 找到AndroidMainfest.xml这个文件,打开后看到了我创建的Activity在这个文件里被成功注册,文件内容如下: ...

  2. Android高级控件(六)——自定义ListView高仿一个QQ可拖拽列表的实现

    Android高级控件(六)--自定义ListView高仿一个QQ可拖拽列表的实现 我们做一些好友列表或者商品列表的时候,居多的需求可能就是需要列表拖拽了,而我们选择了ListView,也是因为使用L ...

  3. Andriod Studio科普篇——4.关于编译的常见问题

    1.android支持库未安装 编译不过,提示如下: Could not find any version that matches com.android.support:appcompat-v7: ...

  4. ProgressBar的indeterminateDrawable属性在安卓6.0上的问题

    通过indeterminateDrawable属性去自定义ProgressBar方法: <ProgressBar android:id="@+id/pb" android:l ...

  5. 【算法导论】第i小的元素

    第i小的元素       时间复杂度:O(n). 基本思想:和快速排序的思想相似,也是对数组进行递归划分,但是有所差别的是,快速排序会递归处理划分的两边,而随机化的选择算法只选择一边.       具 ...

  6. UNIX环境高级编程——pthread_create的问题

    linux 下常用的创建多线程函数pthread_create(pthread_t * thread , pthread_attr_t * attr , void *(*start_routine)( ...

  7. Java 多线程 死锁 隐性死锁 数据竞争 恶性数据竞争 错误解决深入分析 全方向举例

    在几乎所有编程语言中,由于多线程引发的错误都有着难以再现的特点,程序的死锁或其它多线程错误可能只在某些特殊的情形下才出现,或在不同的VM上运行同一个程序时错误表现不同.因此,在编写多线程程序时,事先认 ...

  8. 用SpriteBuilder简化"耕牛遍地走"的动画效果(二)

    首先使用SpriteBuilder新建一个项目,将之前下载的资源文件夹拖入SpriteBuilder的文件视图. 这里我们只需要一步操作就可以完成原文中在Texture Packer中的那么多操作:即 ...

  9. (NO.00003)iOS游戏简单的机器人投射游戏成形记(十七)

    现在玩家选择机器人后,可以在屏幕上或手臂上点击来移动robot's arm了. 但是玩家选择一个机器人后没有视觉效果来表明哪个机器人被选中.玩家做了一个操作后没有视觉反馈会惹恼强迫症用户滴 ;) 这篇 ...

  10. Web Service进阶(六)SOAPBinding绑定方式异常 is not found. Have you run APT to generate them

    当在类中填充相应方法时,提示如下错误: 出现以上错误的原因就是在注解中没有添加@SOAPBinding(style=SOAPBinding.Style.RPC)这句话.估计也与JDK的版本相关,这方面 ...