Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ruby中的thread.exit和thread.pass有什么区别?_Ruby - Fatal编程技术网

ruby中的thread.exit和thread.pass有什么区别?

ruby中的thread.exit和thread.pass有什么区别?,ruby,Ruby,我正在学习ruby及其概念。我正在读一篇关于“ruby中的线程”的文章,其中无法区分thread.pass和thread.exit。本文包含这两种方法的定义:Thread.pass方法调用线程调度程序将执行传递给另一个线程。Thread.exit方法终止当前正在运行的线程,并安排另一个线程运行 但我在使用这些方法时感到困惑。你能帮我整理一下吗。感谢Thread.pass让位于要执行的其他线程,但最终,调度程序将把执行传递给它。exit终止线程(并因此通知调度程序将执行传递给另一个线程)。我希望这

我正在学习ruby及其概念。我正在读一篇关于“ruby中的线程”的文章,其中无法区分thread.pass和thread.exit。本文包含这两种方法的定义:Thread.pass方法调用线程调度程序将执行传递给另一个线程。Thread.exit方法终止当前正在运行的线程,并安排另一个线程运行


但我在使用这些方法时感到困惑。你能帮我整理一下吗。感谢

Thread.pass让位于要执行的其他线程,但最终,调度程序将把执行传递给它。exit终止线程(并因此通知调度程序将执行传递给另一个线程)。我希望这有帮助。如果没有,请包括引起混淆的代码

t1 = Thread.new do
  10.times do |i|
    if i < 5
      puts i
      sleep 0.1
      Thread.pass
    else
      Thread.exit
    end
  end
end

sleep 0.05

t2 = Thread.new do
  10.times do |i|
    puts i
    sleep 0.1
  end
end

t1.join
t2.join

但是这是否意味着在执行thread.exit之后,退出的线程将永远处于休眠状态,或者在什么时间间隔再次调用它。它将永远不会被调用。你能为我提供最好的东西吗?我指的是链接或博客……谢谢
0
0
1
1
2
2
3
3
4
4
5
6
7
8
9