Ruby 如何使用Thread类执行类似算术的方法?

Ruby 如何使用Thread类执行类似算术的方法?,ruby,multithreading,module,Ruby,Multithreading,Module,如何在线程对象中执行此代码 我想要连续执行,但我对处理线程对象知之甚少。我有一个Number类,它接收一个数字作为参数 如果这个数字是偶数,做点什么,如果是奇数,做点别的,最终我要做的是在这个条件框架内,在“数字”变为1的情况下,对这个数字进行连续的评估。所有元素都存储在一个数组中,并查询数组。最后返回1 class Number attr_accessor :x def initialize (number) @x=[] if (number % 2 == 0)

如何在线程对象中执行此代码

我想要连续执行,但我对处理线程对象知之甚少。我有一个
Number
类,它接收一个数字作为参数

如果这个数字是偶数,做点什么,如果是奇数,做点别的,最终我要做的是在这个条件框架内,在“数字”变为1的情况下,对这个数字进行连续的评估。所有元素都存储在一个数组中,并查询
数组。最后返回1

class Number
  attr_accessor :x
  def initialize (number)
    @x=[] 
    if (number % 2 == 0)
      @x << number/2

    elsif (number % 2 != 0)
      @x << (number*3)+1
    end
    print  @x.to_s.concat(" ") // unable to continue

  end
类号
属性存取器:x
def初始化(编号)
@x=[]
如果(数字%2==0)

@我想这就是你想要做的:

def recurse(x, a = [])
  a << x
  return a if x == 1
  if x % 2 == 0
    recurse(x/2, a)
  else
    recurse((x*3 + 1)/2, a)
  end
end

recurse 7
=> [7, 11, 17, 26, 13, 20, 10, 5, 8, 4, 2, 1]

recurse 12
=> [12, 6, 3, 5, 8, 4, 2, 1]
def递归(x,a=[])
a[7,11,17,26,13,20,10,5,8,4,2,1]
递归12
=> [12, 6, 3, 5, 8, 4, 2, 1]

您能更清楚地解释一下输入和输出数据应该是什么吗?在你的帖子中,没有任何东西会高呼“线程是这个问题的正确解决方案”。好的,首先,可能不需要线程。我的输入是一个数字,它必须经过偶数/奇数条件并循环通过这些条件,最终计算为1。这就是输出。给定22除以2得到的结果是11,该结果在手上执行与(数字%2!=0)等对应的代码。这不是线程问题,这是递归问题。谢谢。我必须使用条件循环和标志吗?直到我得到想要的结果,或者如何得到?谢谢,我明白了。但是,在我的机器上,这段代码不会编译。然而,它确实有帮助。当你说它不编译时,你是什么意思?我在irb上运行了它,结果很好。请注意,这只是一个方法,而不是底层类的一部分。您遇到了什么错误?
#/usr/bin/env ruby class R def recurse(x,a=[])a我的答案缺少一行非常重要的内容。我道歉。我已经在上面改正了。