首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >YAP PROLOG超时问题

YAP PROLOG超时问题
EN

Stack Overflow用户
提问于 2015-10-06 09:28:26
回答 1查看 126关注 0票数 3

有谁能解释一下为什么下面的YAP代码不会导致变量Resulttime_out统一

代码语言:javascript
复制
?- time_out(sleep(3),1,Result).
Result = success.
?- time_out(sleep(3),2,Result).
Result = success.
 ?- time_out(sleep(3),1000,Result).
Result = success.
 ?- time_out(sleep(3),2000,Result).

根据文档,谓词应该按照以下方式工作:

time_out(+Goal, +Timeout, -Result) 使用有时间限制的Goal执行目标Timeout,其中以毫秒为单位测量Timeout。如果目标成功,则将Resultsuccess统一起来。如果定时器在目标终止前过期,则将Resulttime_out统一起来。

EN

回答 1

Stack Overflow用户

发布于 2015-10-06 10:20:36

YAP的文件还指出:

最后,即使定时器是以毫秒为单位设置的,但当前的实现依赖于alarm/3,因此只能提供秒级的精度。

反过来,sleep/1的文档声明:

阻塞当前线程的Time秒。

但是,在这种情况下,问题可能与时间无关,而是因为对sleep/1的调用阻塞了正在执行time_out/3调用的当前线程。尽管如此,我尝试了time_out/3谓词与其他目标,也没有得到预期的时间。因此,其中可能有一些错误。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32966383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档