Jin*_*Lim 1 ruby multithreading
这听起来可能很愚蠢。但请指导我。
https://apidock.com/ruby/Thread/join
a = Thread.new { print "a"; }
a.join(5)
Run Code Online (Sandbox Code Playgroud)
正如我们在这里看到的,#join方法基本上是“嘿操作系统,从现在起 5 秒后运行此代码块(线程)”。
但这个名字从何而来?join。为什么不只是run?
在Java中,它的含义似乎略有不同。
我发现这实际上#join是阻塞呼叫。这意味着5秒后检查线程是否完成。如果finished,则终止该线程。(X) 。join 将返回 Thread 对象。这已经死了。
不完全的。join是等待线程完成的操作的传统名称。当您启动线程时,执行会“拆分”,而当父级意识到线程完成时,执行会“合并”。
a.join(5)没有说“从现在起 5 秒后运行此线程”,而是说“最多等待 5 秒让此线程完成”。一旦您创建它,它就会开始运行。