每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。
线程是程序中一个单一的顺序控制流程,在单个程序中同时运行多个线程完成不同的工作,称为多线程。
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