x = Thread.new { sleep 0.1; print "x"; print "y"; print "z" } a = Thread.new { print "a"; print "b"; sleep 0.2; print "c" }
ruby 2.0.0 下的结果是只输出 a
不是应该输出 ab 吗?是因为打印了 a 后主程序就运行完,线程就被终止了?
x = Thread.new { sleep 0.1; print "x"; print "y"; print "z" } a = Thread.new { print "a"; print "b"; sleep 0.2; print "c" } sleep 1
linux 哲学:主线程不管其他线程的死活。
就像 linux 系统里面,你开个命令行 terminal 运行记事本或其他程序,如果关闭命令行 terminal,记事本也被结束掉了。(没指定记事本后台运行 nohup 或 & )
而 windows 系统是不会结束记事本的。