From: Robert Klemme Date: 2009-08-22T02:30:27+09:00 Subject: Re: ruby thread and gets On 21.08.2009 19:10, Im still wrote: > [Note: parts of this message were removed to make it a legal post.] > > Hi all > I'm trying to run two thread at one time in a program. > And one of them will receive user inputting msgs by gets(). > another one will do something else at the same time. > they don't communicate each other. > > like this : > > thread_a = Thread.new{ > loop do > puts "please enter blah blah" > msg = gets > #do something > end > } > thread_a.join > thread_b = Thread.new{ > loop do > #do other things maybe puts "im running im running > ....." > end > > } > thread_b.join > > but when thread_a runs gets waiting for user input, whole program will be > paused waiting for this, I mean thread_b will not working. > How can I handle this ? You are using threads like ordinary functions: you start a thread and wait for it to finish before you start the next one. You should move thread_a.join after the start of thread_b. > Do I have to do this by running multi process? No. Kind regards robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/