加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby Thread的派生类?

发布时间:2020-12-16 23:00:45 所属栏目:百科 来源:网络整理
导读:我已经在C世界生活多年了,我刚刚开始使用 Ruby.我有一个班级,我想做一个线程.在Ruby中从Thread派生类是错误的吗?我看到的例子使用了以下概念. Thread.new { some block } 这样做会有误吗? class MyThread Thread def initialize end def run main loop end
我已经在C世界生活多年了,我刚刚开始使用 Ruby.我有一个班级,我想做一个线程.在Ruby中从Thread派生类是错误的吗?我看到的例子使用了以下概念.
Thread.new { <some block> }

这样做会有误吗?

class MyThread < Thread
  def initialize
  end

  def run
    <main loop>
  end

解决方法

我认为这确实是关于域建模的问题.

如果你想扩展/增强线程的行为方式,那么你正在做的事情没有任何问题 – 例如添加调试或性能输出,但我认为这不是你想要的.

您可能希望使用活动对象在域中为某些概念建模.在这种情况下,标准的Ruby方法更好,因为它允许您在不弯曲域模型的情况下实现此目的.

继承真的应该只用于建模IS_A关系.这个标准的ruby代码整齐地包含了解决方案.

要使对象处于活动状态,请让它以某种方法捕获新创建的线程

Class MyClass

...


   def run
      while work_to_be_done do
         some_work
      end
   end

...

end


threads = []

# start creating active objects by creating an object and assigning
# a thread to each

threads << Thread.new { MyClass.new.run }

threads << Thread.new { MyOtherClass.new.run }

... do more stuff

# now we're done just wait for all objects to finish ....

threads.each { |t| t.join }


# ok,everyone is done,see starships on fire off the shoulder of etc
# time to die ...

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读