![]() |
1
9
我认为这确实是一个关于领域建模的问题。 如果您希望扩展/增强线程的行为方式,比如添加调试或性能输出,那么您所做的不会有任何问题,但我认为这不是您想要的。 您可能想在您的领域中用活动对象建模一些概念。在这种情况下,标准的Ruby方法更好,因为它允许您在不弯曲域模型的情况下实现这一点。 继承真的应该只用于建模IS-A关系。这个的标准Ruby代码巧妙地包装了解决方案。 要使对象处于活动状态,请让它用某种方法捕获新创建的线程
|
![]() |
2
6
很好,我以前见过有人这样做。下面是Ruby邮件列表中调用thread.new时运行的一些示例代码:
如果计划调用thread.fork或thread.start来运行线程,则应该从 Ruby documentation those methods : “基本上与thread::new相同。但是,如果类线程是子类的,那么在该子类中调用start将不会调用子类的initialize方法。” |
![]() |
3
5
我喜欢这样封装:
您也可以直接对线程子类执行此操作:
|
![]() |
4
1
线程Ruby文档提到“如果线程是子类的”,所以它看起来应该是好的。确保如果覆盖初始化,则调用super! |
![]() |
5
0
它不是真正的Ruby方式,但它取决于您试图用线程完成什么。 首先,Ruby1.8没有真正的线程,所以它们只对IO绑定的东西有用。 通常,在Ruby中,您希望在线程中执行某个操作,而不是表示一个线程,因此更容易定义一个在内部创建线程以处理线程方面的普通类。 继承是一种关系 |
![]() |
user107586 · 如何处理等待句柄不会导致无限循环? 8 月前 |
![]() |
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 8 月前 |
![]() |
BenjiFB · C#内存缓存:在一次操作中追加到列表? 8 月前 |
![]() |
András Takács · Python多线程问题 1 年前 |
|
András Takács · Python多线程错误 1 年前 |