Ruby And Threads

I need make my application execute 5 operations in the same time, for
that i make the class Operation and extends to Thread, make method do
and its work fine buts when i start the threads they don’t run all in
the same time.
To run i make

t1 = Operation.new
t2 = Operation.new
t3 = Operation.new
t4 = Operation.new
t5 = Operation.new

and

t1.join
t2.join

I’m doing something wrong ? Why the threads don’t run all the same time?

On 02/02/2008, Magician W. [email protected] wrote:

t1 = Operation.new

I don’t know what an Operation class is …

Thomas P. wrote:

On 02/02/2008, Magician W. [email protected] wrote:

t1 = Operation.new

I don’t know what an Operation class is …

Is one class extended to the Thread class and whith one specific
operation.

Magician W. wrote:

Thomas P. wrote:

On 02/02/2008, Magician W. [email protected] wrote:

t1 = Operation.new

I don’t know what an Operation class is …

Is one class extended to the Thread class and whith one specific
operation.
Why would you do that?

first of all, reember to call super if you do initialization, second why
don’t you just provide Thread.new with block?

anyway if you want usefull help, explain your question better or paste
code to pastie.caboo.se :stuck_out_tongue:

Marcin R. wrote:

Magician W. wrote:

Is one class extended to the Thread class and whith one specific
operation.
Why would you do that?
first of all, reember to call super if you do initialization, second why
don’t you just provide Thread.new with block?

There might be good reasons to do that. I often subclass Thread to
give each thread an API for status and interchange, other than just
shared variables. That way you can include the required synchronization
inside the API.

That said, does the OP know that Ruby’s “green threads” will only ever
schedule one thread at a time? Even on a multi-core/multi-CPU box?
If each thread completes within its timeslice, it will appear that
they’re running sequentially.

Clifford H…