Ruby 教程 之 Ruby 多线程 3
Ruby 多线程
每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。
线程是程序中一个单一的顺序控制流程,在单个程序中同时运行多个线程完成不同的工作,称为多线程。
Ruby 中我们可以通过 Thread 类来创建多线程,Ruby的线程是一个轻量级的,可以以高效的方式来实现并行的代码。
创建 Ruby 线程
要启动一个新的线程,只需要调用 Thread.new 即可:
线程 #1 代码部分
Thread.new {
线程 #2 执行代码
}
线程 #1 执行代码
实例
以下实例展示了如何在Ruby程序中使用多线程:
实例
!/usr/bin/ruby
def func1
i=0
while i<=2
puts "func1 at: #{Time.now}"
sleep(2)
i=i+1
end
end
def func2
j=0
while j<=2
puts "func2 at: #{Time.now}"
sleep(1)
j=j+1
end
end
puts "Started At #{Time.now}"
t1=Thread.new{func1()}
t2=Thread.new{func2()}
t1.join
t2.join
puts "End at #{Time.now}"
尝试一下 »
以上代码执行结果为:
Started At Wed May 14 08:21:54 -0700 2014
func1 at: Wed May 14 08:21:54 -0700 2014
func2 at: Wed May 14 08:21:54 -0700 2014
func2 at: Wed May 14 08:21:55 -0700 2014
func1 at: Wed May 14 08:21:56 -0700 2014
func2 at: Wed May 14 08:21:56 -0700 2014
func1 at: Wed May 14 08:21:58 -0700 2014
End at Wed May 14 08:22:00 -0700 2014
线程状态
线程有5种状态:
线程状态 返回值
可执行 run
睡眠 Sleeping
退出 aborting
正常终止 false
发生异常终止 nil