tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Brandon Cruz" <bc...@norvax.com>
Subject RE: Java Question
Date Tue, 12 Jun 2001 18:56:02 GMT
So would changing something simple from...

public static String getYear(String str){
      newStr = str.substring(0,4);
      return newStr;
    }

to...

public static String getYear(String str){
    synchronized(str){
      newStr = str.substring(0,4);
      return newStr;
    }
  }

be correct if I want to avoid having incorrect results returned when
accessed by multiple threads?  It compiles like that, but is that all that
is needed to synchronize something?

Brandon

-----Original Message-----
From: Luba Powell [mailto:luba999@bellatlantic.net]
Sent: Tuesday, June 12, 2001 1:52 PM
To: tomcat-user@jakarta.apache.org
Subject: Re: Java Question


Actually the outcome is predictable:
monitorenter will obtain objectref on this (aload_0)
* if no other thread has locked the object
* if the object is currently locked by another thread (monitorenter
instruction)
* if the current thread already owns a lock - the lock is released when the
counter
    returns to 0


.method static doSort([I)V
    aload_0
    monitorenter
    ; sensitive code
    monitorexit
    ...
    return
end method

----- Original Message -----
From: "Brandon Cruz" <bcruz@norvax.com>
To: <tomcat-user@jakarta.apache.org>
Sent: Tuesday, June 12, 2001 2:18 PM
Subject: Java Question

----- Original Message -----
From: "Pae Choi" <paechoi@earthlink.net>
To: <tomcat-user@jakarta.apache.org>
Sent: Tuesday, June 12, 2001 2:41 PM
Subject: Re: Java Question


> When you access the 'synchronized' static method, it locks its class.
> so this will ensure the thread-safe access. Otherwise, the result is
> unknown.
>
>
> Pae
>
>
> > I have looked all over and can't find the answer to this simple
question.
> > If you use a static method, do you have to synchronize it in case other
> > people may access it at the same time.  For example, I have a static
Utility
> > class to do date calculations.  The method Utility.getMonth(String date)
> > takes in a full date string, parses it, and returns just the month
value.
> > If 5 different people all using the website attempt to use
> > Utility.getMonth(String date) at the same time for different dates, will
it
> > return the right results?  If not, do I have to synchronize it or
something
> > in case multiple users attempt to access it?
> >
> > I know this is not really related to tomcat, but since I am using
tomcat,
> > and everyone else using tomcat is also a java developer, I figured this
is
> > the best place I can ask.
> >
> > Thanks for any help!!!
> >
> > Brandon
> >
>



Mime
View raw message