--000feaeb3f38db27c00471ac0e81 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit 2009/8/22 Im still <quietstill / gmail.com> > 2009/8/22 Robert Klemme <shortcutter / googlemail.com> > > > 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 ets > >> #do something > >> end > >> } > >> thread_a.join > >> thread_b hread.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/ > > > > > > > Thanks Robert. Seems I didn't uderstand well with thr.join method... > Still a question. How can I implement a function that command line will keep on outputting messages while it will still receive user's keyboard inputtings just like Linux shell always does? thanks. --000feaeb3f38db27c00471ac0e81--