gpt4 book ai didi

ruby - 为什么这段代码打印同样的东西两次?

转载 作者:数据小太阳 更新时间:2023-10-29 07:38:40 25 4
gpt4 key购买 nike

我正在尝试编写一些小的超时代码:

t = Thread.new { sleep 3 } # <- The thread that will do stuff.
Thread.new { sleep 2; t.kill; p 'hi!' } # <- The thread that will kill it after two seconds.
t.join

如果第一个线程在两秒内完成它的工作,它将停止,主线程将无事可做。这将导致程序在第二个线程到达 t.kill 部分之前退出。但是,当我运行这段代码时,"hi!" 被打印了两次。用 puts 替换 p 修复它。为什么会这样?

最佳答案

Ruby 有一个 io 缓冲和线程的错误,看起来完全像这样。最近已经修复,所以升级。

关于ruby - 为什么这段代码打印同样的东西两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3277775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com