因为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. 海量数据处理算法(top K问题)

    举例 有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M.返回频数最高的100个词. 思路 首先把文件分开 针对每个文件hash遍历,统计每个词语的频率 使用堆进 ...

  2. 关于"net::ERR_CONNECTION_ABORTED"和"Firebug 达到了 Post 请求大小限制"的问题

    1.其中"net::ERR_CONNECTION_ABORTED"是在Chrome的控制台中打印出来的. 2."Firebug 达到了 Post 请求大小限制" ...

  3. java常用IO流集合用法模板

    package com.fmy; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import jav ...

  4. 秒懂ASP.NET中的内置对象

    上篇博客,小编主要简单的介绍了一下ASP.NET中的控件,这篇博客,小编主要简单总结一下ASP.NET中的内置对象,七个内置对象分别是:Request.Response.Application.Coo ...

  5. (六十七)Xcode导入XMPPFramework框架

    首先下载XMPPFramework框架,将Vendor内容导入到工程中,其中KissXML需要额外的框架,需要通过Xcode设置. 选择工程选项中TARGETS的General标签,最下侧有Linke ...

  6. xml解析之sax解析原理图和技术介绍

    SAX解析工具-  Sun公司提供的.内置在jdk中.org.xml.sax.* 核心的API: SAXParser类: 用于读取和解析xml文件对象 parse(File f,DefaultHand ...

  7. SpringMVC项目中启动自加载Listener

    package com.kuman.cartoon.listener; import java.util.List; import org.springframework.beans.factory. ...

  8. MinerConfig.java 爬取配置类

    MinerConfig.java 爬取配置类 package com.iteye.injavawetrust.miner; import java.util.List; /** * 爬取配置类 * @ ...

  9. 浅谈SystemClock 和Thead的区别和联系

    其实将SystemClock 和Thead直接放在一起是不合适的,我们首先来看下他们所在的api. public final class SystemClock extends Object java ...

  10. unity UGUI实现类似NGUI切换Sprite的方式

    很多都是使用NGUI的习惯,因为在NGUI中所有图片都打包在一个图集中,通过更改SpriteName就可以更改图片,so,为了方便调用UGUI的sprite,我们也同样需要为其创建一个asset文件. ...