Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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,为什么这段代码可以工作(我看到输出1 2 3): 但是,以下代码不会产生相同的输出(我看不到输出1 2 3) 当到达脚本末尾时,Ruby退出。如果在最后一个循环后添加sleep 10,则可以看到输出显示。(尽管每次都是3,因为绑定到i反映了处理结束时的值,而休眠会导致线程切换回循环。) 您可能需要以下内容: threads = [] for i in 1..3 threads << Thread.new { sleep 5 puts i } end threa

为什么这段代码可以工作(我看到输出1 2 3):

但是,以下代码不会产生相同的输出(我看不到输出1 2 3)


当到达脚本末尾时,Ruby退出。如果在最后一个循环后添加
sleep 10
,则可以看到输出显示。(尽管每次都是3,因为绑定到
i
反映了处理结束时的值,而休眠会导致线程切换回循环。)

您可能需要以下内容:

threads = []
for i in 1..3
  threads << Thread.new {
    sleep 5
    puts i
  }
end
threads.map {|t| t.join }
threads=[]
因为我在1..3中

线程当您到达脚本末尾时,Ruby退出。如果在最后一个循环后添加
sleep 10
,则可以看到输出显示。(尽管每次都是3,因为绑定到
i
反映了处理结束时的值,而休眠会导致线程切换回循环。)

您可能需要以下内容:

threads = []
for i in 1..3
  threads << Thread.new {
    sleep 5
    puts i
  }
end
threads.map {|t| t.join }
threads=[]
因为我在1..3中
线程
threads = []
for i in 1..3
  threads << Thread.new {
    sleep 5
    puts i
  }
end
threads.map {|t| t.join }