gpt4 book ai didi

ruby - Ruby检查线程是否为 “free”

转载 作者:行者123 更新时间:2023-12-03 13:21:29 26 4
gpt4 key购买 nike

我想拥有一个threads []数组,这样,如果一个线程“空闲”或无法在任何程序上运行,那么它将被分配一个新任务。

无论如何,有没有检查 ruby 中的线程是否“免费”。目前我用

if (threads[thread_id].nil? || !threads[thread_id].status)
# yes thread is free

但是似乎不是正确的方法,某些线程仍然会覆盖其他线程。

最佳答案

threads.each.map {|t| t.alive?}.none?

如果所有线程均已死,则返回true

如果您有这样的事情:
threads << Thread.new do
# do dome work ...
end

并且您想检查所有线程是否都未激活(即已死),则可以始终使用以下命令:
threads.each.map {|t| t.alive?}.none?

我们从数组中一个接一个的线程,并检查它是否还活着。 map方法正在使用真/假值(有效/无效)创建数组。最终没有?如果所有成员均为假(即所有线程均已死亡),则enumerable方法应返回true

关于ruby - Ruby检查线程是否为 “free”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7595942/

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