Project1

标题: 关于Ruby脚本的问题 [打印本页]

作者: BlueHalo    时间: 2018-7-14 21:21
标题: 关于Ruby脚本的问题
代码内容


代码如上,套一个while之后就会卡死awa

怎么实现类似的功能并正常运行
作者: IamI    时间: 2018-7-15 21:26
直接sysread这么硬核的么……
while没有出口,凭什么不卡死?
作者: yang1zhi    时间: 2018-7-15 22:43
可是你的代码里面没有写着while
作者: BlueHalo    时间: 2018-7-16 07:23
IamI 发表于 2018-7-15 21:26
直接sysread这么硬核的么……
while没有出口,凭什么不卡死?

不是啊

以上代码套一个while,结尾end,然后测试游戏会一直黑屏,然后显示代码已备份
作者: BlueHalo    时间: 2018-7-16 07:23
yang1zhi 发表于 2018-7-15 22:43
可是你的代码里面没有写着while

套了while(结尾加end)就会一直黑屏
作者: BlueHalo    时间: 2018-7-16 12:48
yang1zhi 发表于 2018-7-15 22:43
可是你的代码里面没有写着while

我写的是while true
awa
作者: 丿梁丶小柒    时间: 2018-7-16 16:40
rgss是单线程的脚本,我记得好像没有完全继承ruby的特性,ruby是多线程的。到rm这里就成了单线程,所以你如果执行耗时任务肯定会卡住黑屏啦
作者: BlueHalo    时间: 2018-7-17 16:48
丿梁丶小柒 发表于 2018-7-16 16:40
rgss是单线程的脚本,我记得好像没有完全继承ruby的特性,ruby是多线程的。到rm这里就成了单线程,所以你如 ...

所以所我应该怎么实现呢
作者: 丿梁丶小柒    时间: 2018-7-17 17:39
BlueHalo 发表于 2018-7-17 16:48
所以所我应该怎么实现呢

并不能实现,除非你把底层内核改了。
但是我能给你一些建议。虽然是单线程 但是也能并发执行。
多线程的原理是这样的,给你打个比方。前面有四桶水,四个桶是空的,装满一桶是一个任务。水管可以喷水是cpu执行。ruby是这样的,你用水管喷满一桶执行完一个任务。 如果多线程就是这样,执行的,每一桶装一点,无序的一桶装一点,直到全部装满。实际上系统的多线程也是这样执行的。ruby是执行单线程的,本身提供的api Thread也会卡住线程,所以想要实现多线程你就得把内核给改了
作者: BlueHalo    时间: 2018-7-17 18:39
丿梁丶小柒 发表于 2018-7-17 17:39
并不能实现,除非你把底层内核改了。
但是我能给你一些建议。虽然是单线程 但是也能并发执行。
多线程的 ...

麻烦。。。

不过我貌似想到了另一种方法




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1