I am not familiar with Doug Lea or any of his opinions. I do not have direct
control of the threading of the RMI communication. The RMI method calls are
asynchronous and I have to wait for the return message before I can produce the
display content. I have not gone too deep into JMS to make it event driven yet.
This would be my next change after I get basic functionality.

I do not directly spawn the new thread. The new thread is the RMI return message
coming from a remote host. Now that I do not synchronize a method, I no longer
have blocking problems and I get out of my loop as soon as the RMI thread sets a
flag that the data is ready.

Robert S. Harper
801.265.8800 ex. 255

> -----Original Message-----
> From: Dakota Jack [mailto:[EMAIL PROTECTED]
> Sent: Friday, December 10, 2004 9:21 AM
> To: Tomcat Users List; [EMAIL PROTECTED]
> Subject: Re: Tomcat & threads
> 
> Have you looked at Doug Lea's stuff?  I personally would never have a
> server thread wait on anything from another thread.  The idea of two
> threads running together makes little sense where one is just waiting.
>  This may seem too strict, but I follow it to the letter.
> 
> Jack
> 
> 
> On Fri, 10 Dec 2004 08:04:12 -0700, Robert Harper <[EMAIL PROTECTED]> wrote:
> >
> >
> > Robert S. Harper
> >
> >
> > 801.265.8800 ex. 255
> > > -----Original Message-----
> > > From: Shapira, Yoav [mailto:[EMAIL PROTECTED]
> > > >I have an app that must wait for a return from another machine that
> > >
> > > Yikes ;(  I hope you realize that fragility of this design, given that
> > > J2EE apps (which includes Servlet webapps) are not supposed to create
> > [Robert Harper]
> > The extra thread is from the return side of the RMI link to the remote
> computer.
> > I do not directly spawn a thread. If you know of an event library for this
> > version of the JVM, I would be happy to use that because I think things run
> more
> > efficient and the code looks cleaner.
> >
> >
> >
> > >
> > > >The problem is that it also blocking
> > > >the
> > > >return thread until the loop is terminated.
> > >
> > > So Thread.currentThread().sleep(1000) blocks a thread other than the
> > > current thread?  Is the "return thread" a child of the request
> > > processing thread?  If so, you should make it NOT a child by
> > > pre-creating it (or possibly a pool of these return threads) at app
> > > startup.
> > >
> > > But really, you should consider an alternative design.  Blocking
> > > container threads is never good.
> > >
> >
> > [Robert Harper] It looks like the blocking was due to my lack of
> understanding
> > of how synchronized works. I thought, wrongly, that if I added the
> synchronized
> > modifier to a method definition, that the method would be synchronized. It
> also
> > made the member data field blocking. I am used to writing Win32
> multithreaded
> > apps. and I am having a hard time making the switch to the Java way of doing
> > things.
> >
> >
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> 
> 
> --
> 
> 
> "You can't wake a person who is pretending to be asleep."
> 
> ~Native Proverb~
> 
> "Each man is good in His sight. It is not necessary for eagles to be crows."
> 
> ~Hunkesni (Sitting Bull), Hunkpapa Sioux~
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to