在C/C++中,当我们创建一个线程时,有一种机制可以将一些参数传递给线程执行体。在java中,我们可以继承Thread
类以允许线程类包含一些实例变量。在Ruby中,创建一个线程的方法是:如何在Ruby中创建线程的子类?
Thread.new
thread = Thread.new {
... code thread execution body
}
后,线程开始立即运行。我看到的所有代码都在线程体中使用全局变量。假设我们需要一个互斥锁,代码:
mutex = Mutex.new
thread = Thread.new {
... code thread execution body
mutex.synchronized {
... some code
}
}
是否有可能创造Thread
一个子类,并允许它有一些实例变量?我无法弄清楚的技术问题是如何将代码块传递给子类以及子类如何将代码块传递给超类Thread
类。
可能重复[如何将监控对象传递给在Ruby中两个纱线对象?(http://stackoverflow.com/questions/18435630/how-to-pass-an-monitor-object-to -two-thread-objects-in-ruby)由同一个用户 –