介绍一下Ruby的多线程处理


Posted in 面试题 onFebruary 01, 2013
Ruby的多线程是用户级多线程,这样使得Ruby的多线程移植非常容易,你并不需关心具体的操作系统;这样做也使线程容易控制,程序不容易产生死锁这类严重的线程问题。
但是同时,由于Ruby的多线程并不是真正意义上的操作系统级多线程,不管代码使用了多少个Thread类的实例,都只会在启动解释器这一个进程内执行,由Ruby解释器进行具体的线程切换管理,其效率要低于由操作系统管理线程的效率,且不能使用多个CPU。
在Ruby中同时做多件事最简单的方式就是使用Thread类,Thread类提供了一种高效和轻量级的手段来同时处理多件任务。
Thread类由Ruby解释器具体实现,提供了一种同时处理多个任务的方法, Thread类实现的并不是操作系统级多线程。
Ruby多线程的优点和缺点同样明显,缺点是效率不如操作系统级多线程,不能使用多个CPU,但其优点也很明显,即可移植性很高。这就需要设计人员综合考虑。

Tags in this post...

面试题 相关文章推荐
Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
Aug 04 面试题
C语言笔试题
Sep 04 面试题
C/C++程序员常见面试题二
Nov 19 面试题
我想声明一个指针并为它分配一些空间, 但却不行。这些代码有什么 问题?char *p; *p = malloc(10);
Oct 06 面试题
什么是表空间(tablespace)和系统表空间(System tablespace)
Feb 25 面试题
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
Mar 27 面试题
简述安装Slackware Linux系统的过程
Jan 12 面试题
介绍一下Linux中的链接
Jun 05 面试题
什么是虚拟内存?虚拟内存有什么优势?
Feb 09 面试题
山海经纬软件测试笔试题和面试题
Apr 02 面试题
介绍JAVA 中的Collection FrameWork(及如何写自己的数据结构)
Oct 31 面试题
IBatis持久层技术
Jul 18 面试题
Ruby如何创建一个线程
Mar 10 #面试题
Ruby如何进行文件操作
Jul 17 #面试题
Ruby如何实现动态方法调用
Nov 18 #面试题
介绍一下Ruby的特点
Jan 20 #面试题
JPA的优势都有哪些
Jul 04 #面试题
J2EE中的容器都包括哪些
Aug 21 #面试题
J2EE面试题
Mar 14 #面试题
You might like
PHP 文件上传全攻略
2010/04/28 PHP
深入file_get_contents函数抓取内容失败的原因分析
2013/06/25 PHP
关于PHP通用返回值设置方法
2017/03/31 PHP
PHP如何通过表单直接提交大文件详解
2019/01/08 PHP
详解PHP 二维数组排序保持键名不变
2019/03/06 PHP
javascript function、指针及内置对象
2009/02/19 Javascript
JS 树形递归实例代码
2010/05/18 Javascript
jquery 实现二级/三级/多级联动菜单的思路及代码
2013/04/08 Javascript
如何实现textarea里的不同文本显示不同颜色
2014/01/20 Javascript
如何减少浏览器的reflow和repaint
2015/02/26 Javascript
Bootstrap对话框使用实例讲解
2016/09/24 Javascript
JavaScript生成.xls文件的代码
2016/12/22 Javascript
浅谈JS如何实现真正的对象常量
2017/06/25 Javascript
ztree简介_动力节点Java学院整理
2017/07/19 Javascript
Three.js利用orbit controls插件(轨道控制)控制模型交互动作详解
2017/09/25 Javascript
axios中cookie跨域及相关配置示例详解
2017/12/20 Javascript
微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例
2019/05/14 Javascript
React路由鉴权的实现方法
2019/09/05 Javascript
python实现批量按比例缩放图片效果
2018/03/30 Python
浅谈python中对于json写入txt文件的编码问题
2018/06/07 Python
Python文件读写保存操作的示例代码
2018/09/14 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
2018/11/10 Python
Python 支付整合开发包的实现
2019/01/23 Python
pandas DataFrame索引行列的实现
2019/06/04 Python
详解python实现小波变换的一个简单例子
2019/07/18 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
2019/08/06 Python
python面向对象 反射原理解析
2019/08/12 Python
Python3 文章标题关键字提取的例子
2019/08/26 Python
PyTorch和Keras计算模型参数的例子
2020/01/02 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
2020/05/23 Python
Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决
2020/09/18 Python
Python内置函数及功能简介汇总
2020/10/13 Python
总结html5自定义属性有哪些
2020/04/01 HTML / CSS
母亲节感恩活动记录
2014/03/16 职场文书
厕所文明标语
2014/06/11 职场文书
课外科技活动总结
2014/08/27 职场文书