论坛首页 编程语言技术论坛

ruby可以做嵌入语言不

浏览 9137 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-08-09  
ray_linn 写道
RednaxelaFX 写道
嗯当然可以嵌入用。有些游戏引擎还就是拿Ruby当嵌入脚本用的。
老文章例如这篇 http://metaeditor.sourceforge.net/embed/
没有Context之类的对象,你需要的是一些全局函数。嗯这也是MRI不适合嵌入的一个方面 = =



没有Context对象,基本MultiThread就玩不动了,看来C族嵌入式语言还是基本该用lua和js啊。


lua目前是比较适合用于嵌入的语言...
0 请登录后投票
   发表时间:2011-08-10  
推lua和jsv8
0 请登录后投票
   发表时间:2011-08-11  
moonscript (编译成lua) 貌似很帅的样子
0 请登录后投票
   发表时间:2011-08-11  
night_stalker 写道
moonscript (编译成lua) 貌似很帅的样子


最后找到了python,哈,可以有2个上下文,一个全局一个局部的,ruby只好丢一边了。
0 请登录后投票
   发表时间:2011-08-11  
小白,没看明白楼主的意思。
你是一个进程还是多个进程啊?
一个进程直接访问就行了,多个进程可以用DRB啊
0 请登录后投票
   发表时间:2011-08-12   最后修改:2011-08-12
kiol 写道
小白,没看明白楼主的意思。
你是一个进程还是多个进程啊?
一个进程直接访问就行了,多个进程可以用DRB啊



提到嵌入语言,宿主一般另一种语言,两个ruby玩一起还需要发帖么?关DRB啥事了?
0 请登录后投票
   发表时间:2011-08-13  
python是个全局大锁,多线程意义不大,我建议你还是用lua,angelscript之类的脚本语言。这些语言能创建多个context,而python虽然功能非常强大,但未必适合多线程访问。至于ruby,在嵌入方面感觉是没什么优势。

//下面是引用的。
全局解释器锁 (Global Interpretor Lock) 说明 Python 解释器并不是线程安全的。当前线程必须持有全局锁,以便对 Python 对象进行安全地访问。因为只有一个线程可以获得 Python 对象/C API,所以解释器每经过 100 个字节码的指令,就有规律地释放和重新获得锁。解释器对线程切换进行检查的频率可以通过 sys.setcheckinterval() 函数来进行控制。
此外,还将根据潜在的阻塞 I/O 操作,释放和重新获得锁。有关更详细的信息,请参见参考资料部分中的 Gil and Threading State 和 Threading the Global Interpreter Lock。
需要说明的是,因为 GIL,CPU 受限的应用程序将无法从线程的使用中受益。使用 Python 时,建议使用进程,或者混合创建进程和线程。


0 请登录后投票
   发表时间:2011-08-13  
http://zhuoqiang.me/a/python-thread-gil-and-ctypes
0 请登录后投票
   发表时间:2011-08-22  
没怎么看懂扯到多线程了,ruby的话,一个脚本,用eval可以把。

我把ruby弄到板子上了,好像ray_linn以前搞过。挺方便的。
0 请登录后投票
   发表时间:2011-08-22  
night_stalker 写道
moonscript (编译成lua) 貌似很帅的样子


angelscript。。不过仿佛比lua还方便,一个函数或者是类只需要注册到AS的虚拟机中, 就可以在AS脚本中使用了.
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics