Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.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 线程运行和线程唤醒之间的区别?_Ruby_Multithreading - Fatal编程技术网

Ruby 线程运行和线程唤醒之间的区别?

Ruby 线程运行和线程唤醒之间的区别?,ruby,multithreading,Ruby,Multithreading,在Ruby中,和的区别是什么 RDoc指定不使用线程唤醒调用调度程序,但这意味着什么?何时使用唤醒与运行的示例?谢谢 编辑: 我看到这会导致线程变得可运行,但是如果在执行之前它不会执行(这会唤醒线程),那又有什么用呢 有人能举一个例子,说明wakeup做了什么有意义的事情吗?出于好奇=)这里有一个示例来说明它的含义(代码示例来自: 线程。唤醒 thread = Thread.new do Thread.stop puts "Inside the thread block" end $

在Ruby中,和的区别是什么

RDoc指定不使用线程唤醒调用调度程序,但这意味着什么?何时使用唤醒与运行的示例?谢谢

编辑:
我看到这会导致线程变得可运行,但是如果在执行之前它不会执行(这会唤醒线程),那又有什么用呢


有人能举一个例子,说明wakeup做了什么有意义的事情吗?出于好奇=)

这里有一个示例来说明它的含义(代码示例来自:

线程。唤醒

thread = Thread.new do 
  Thread.stop
  puts "Inside the thread block"
end

$ thread
=> #<Thread:0x100394008 sleep> 
线程运行

thread = Thread.new do 
  Thread.stop
  puts "Inside the thread block"
end

$ thread
=> #<Thread:0x100394008 sleep> 

$ thread.run
Inside the thread block
=> #<Thread:0x1005d9930 sleep>   

谢谢我看到唤醒会导致线程变得可运行,但是如果在有人使用run调度它之前它不会运行,这会唤醒线程,那又有什么用呢?你能举个例子说明“唤醒”在哪里做了一些有意义的事情吗?它与线程调度程序有关。这是来自文档的:“注意:这不会调用调度程序,更多信息请参见运行”。@phoet我仍然很好奇这个东西是什么?添加正确答案并领取奖品!
$ thread.run
Inside the thread block
=> #<Thread:0x1005d9930 sleep>   
$ thread.run
ThreadError: killed thread
thread = Thread.new do 
  Thread.stop
  puts "Inside the thread block"
end

$ thread
=> #<Thread:0x100394008 sleep> 

$ thread.run
Inside the thread block
=> #<Thread:0x1005d9930 sleep>   
$ thread.run
ThreadError: killed thread