[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Re: Threads

Phy Prabab

10/14/2008 5:26:00 PM

Hi guys,

threads = []

list = %w(aS, bS, cS, dS, eS, fS, gS, hS)

for space in list
threads << Thread.new(space) {|numericalSpace|
while 1
puts "#{Thread.id}: #{numericalSpace}"
sleep 2.5
end
}
end

Yes, there was a bug in my code, that being a typo of thread.id (should be Thread.id), but the biggest thing, was the fact that I needed to do a thread join. So I added this:

threads.each {|eachThread| eachThread.join}

Now on to signaling!

Cheers, Phy


--- On Tue, 10/14/08, Piyush Ranjan <piyush.pr@gmail.com> wrote:

> From: Piyush Ranjan <piyush.pr@gmail.com>
> Subject: Re: Threads
> To: "ruby-talk ML" <ruby-talk@ruby-lang.org>
> Date: Tuesday, October 14, 2008, 10:40 AM
> I think the reason is that there is nothing called thread.id
> and thats why
> threads die as they start excution
>
> On Tue, Oct 14, 2008 at 5:59 PM, Randy Kramer
> <rhkramer@gmail.com> wrote:
>
> > On Tuesday 14 October 2008 04:48 am, Phy Prabab wrote:
> > > Never mind, I resolved the issue by reading a bit
> more.
> >
> > Can you share with us?
> >
> > Randy Kramer
> > --
> > I didn't have time to write a short letter, so I
> created a video
> > instead.--with apologies to Cicero, et.al.
> >
> >




1 Answer

The Higgs bozo

10/14/2008 5:59:00 PM

0

Phy Prabab wrote:
>
> Yes, there was a bug in my code, that being a typo of thread.id (should
> be Thread.id), but the biggest thing, was the fact that I needed to do a
> thread join. So I added this:
>
> threads.each {|eachThread| eachThread.join}
>
> Now on to signaling!
>

I think your code still isn't quite what you want. Try

require 'thread'

threads = []
mutex = Mutex.new
STDOUT.sync = true

list = %w(aS, bS, cS, dS, eS, fS, gS, hS)

for space in list
threads << Thread.new(space) {|numericalSpace|
while true
mutex.synchronize do
puts "#{Thread.current.object_id}: #{numericalSpace}"
end
sleep 2.5
end
}
end

threads.each {|eachThread| eachThread.join}

--
Posted via http://www.ruby-....