请教线程加xml解析器的问题

请教一下,为什么使用xml的流解析器不能实现多线程?
require 'MyListener'
tag1="a"
tag2="b"
thread1=Thread.new do
 list=MyListener.new(tag1)
 dir="test.xml"
 source=File.new(dir)
 Document.parse_stream(source,list) #这里就出问题了!
 source.close
end
thread2=Thread.new do
 list=MyListener.new(tag2)
 dir="test.xml"
 source=File.new(dir)
 puts "one" #显示了!
 Document.parse_stream(source,list)
 puts "two" #没有显示!
 source.close
 end
Thread.list.each do|t|
 t.join unless t==Thread.main
end

运行程序,结果只运行了第一个Document.parse_stream
虽然第二个线程也开了,
但是第二个Document.parse_stream和其后的语句就没有运行
不知道为什么,请各位指教!