gpt4 book ai didi

ruby - 当你不加入你的线程时会发生什么?

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

我正在编写一个 ruby​​ 程序,它将使用线程来完成一些工作。正在完成的工作需要花费不确定的时间才能完成,范围从 5 到 45+ 秒不等。下面是线程代码的粗略示例:

loop do                         # Program loop
items = get_items
threads = []

for item in items
threads << Thread.new(item) do |i|
# do work on i
end

threads.each { |t| t.join } # What happens if this isn't there?
end
end

我的偏好是跳过加入线程而不是阻塞整个应用程序。但是我不知道这有什么长期影响,特别是因为代码几乎立即再次运行。这是安全的事情吗?或者有没有更好的方法来生成一个线程,让它工作,并在它完成时清理,所有这些都在一个无限循环中?

最佳答案

我认为这真的取决于你的线程工作的内容。例如,如果您的主线程需要打印“X work done”,您将需要加入以保证您显示的是正确答案。如果您没有这样的要求,那么您不一定需要加入。

关于ruby - 当你不加入你的线程时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4099872/

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