> -----Original Message-----
> From: A mailing list about Java Server Pages specification and reference
> [mailto:[EMAIL PROTECTED]]On Behalf Of Amit Ghaste
> Sent: Saturday, March 15, 2003 5:02 PM
> To: [EMAIL PROTECTED]
> Subject: Re: stupid question
>
>
> vikramjit, I think he meant it in relevance to JSP.

Did he? Coz i thought he said static variables and methods. Oops. But why in
jsp, put in bean, makes life much easier and follow the steps mentioned
below.

>
> correct me if I am wrong Roldan, but did u mean declaring static variables
> and/or static methods declared in a jsp page...
>
> if so no, you will need to implement synchronization... consider
> performance
> and benefits of the approach as well.

Yups thats true.. Since jsp's are not thread safe and many users can access
them.
>
> -----Original Message-----
> From: A mailing list about Java Server Pages specification and reference
> [mailto:[EMAIL PROTECTED]]On Behalf Of Vikramjit Singh
> Sent: Tuesday, February 18, 2003 12:13 AM
> To: [EMAIL PROTECTED]
> Subject: Re: stupid question
>
>
> Rather this is a very interesting question but not related to jsp
> specifically.
> In one simple word the answer is yes you can lock a static variable.
> First, any member variable that you wish to make thread safe must be
> declared private. Consider the following code:
>
> public class MyPoint
> {
> public int x;
> public int y;
>
> public int getX()
> {
> return x;
> }
> public int getY()
> {
> return y;
> }
> public synchronized setX(int x)
> {
> this.x = x;
> }
> public synchronized getY(int y)
> {
> this.y = y;
> }
> }
> If this were an ideal world, everyone would set x and y by calling setX()
> and setY(), respectively. However, we all know that someone will
> come along
> and set x or y directly, since we defined the members as public. And since
> we defined x and y as public, it is reasonable for someone to
> come along and
> access the variables directly. If we didn't want someone to access the
> members directly, we shouldn't have declared them as public in the first
> place! The only way to guarantee that threads will access x and y
> safely is
> to declare them as private and provide synchronized access.
> Nothing changes when you declare a member static. If you don't want some
> thread to come along and bypass your careful synchronization,
> don't declare
> the member public or protected.
> Now, the question remains: how do we lock the member? Sometimes I
> think that
> part of the confusion around synchronization stems from a misunderstanding
> of what actually happens when you call synchronized(some_object). Calling
> synchronized on some_object does not prevent access to
> some_object. Instead,
> you must think of synchronized as a request to open a lock around
> some piece
> of code for your thread. some_object is the lock that you wish to have
> access to. Only one thread may hold a specific lock at any one time.
> Making a static member thread safe is fairly simple once you
> understand what
> really happens when you call synchronized. Here is a template to follow
> (there are many more ways to do it, though):
>
> class Safe {
> ... other class definitions ...
> private static <type> var;
>
> public final synchronized static setVar(<type> val)
> {
> var = val;
> }
> }
> As a second option, you can also synchronize within the method. Which
> approach you take will depend upon your code. However, in this example,
> either way is equivalent, since a synchronized static method
> grabs the lock
> on the class. You would use the second option if you were doing a lot of
> processing inside of the method. That way you only synchronize
> when you have
> to -- thus improving performance.
> You would need to use synchronization within the method if you didn't want
> to declare setVar() static. A nonstatic method declared as synchronized
> locks on the instance, not the class. So, if you had more than
> one instance,
> the member would no longer be thread safe.
>
> -----Original Message-----
> From: A mailing list about Java Server Pages specification and reference
> [mailto:[EMAIL PROTECTED]]On Behalf Of ROLDAN, Gabriel raul
> Sent: Monday, February 17, 2003 6:59 PM
> To: [EMAIL PROTECTED]
> Subject: stupid question
>
>
> excuse this stupid and out of topic question, but.. ¿are static
> methods and
> fields synchronized?
>
> =========================
> To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff
> JSP-INTEREST".
> For digest: mailto [EMAIL PROTECTED] with body: "set JSP-INTEREST
> DIGEST".
>
> Some relevant archives, FAQs and Forums on JSPs can be found at:
>
>  http://java.sun.com/products/jsp
>  http://archives.java.sun.com/jsp-interest.html
>  http://forums.java.sun.com
>  http://www.jspinsider.com
>
> ==================================================================
> =========
> To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff
> JSP-INTEREST".
> For digest: mailto [EMAIL PROTECTED] with body: "set JSP-INTEREST
> DIGEST".
>
> Some relevant archives, FAQs and Forums on JSPs can be found at:
>
>  http://java.sun.com/products/jsp
>  http://archives.java.sun.com/jsp-interest.html
>  http://forums.java.sun.com
>  http://www.jspinsider.com
>
> ==================================================================
> =========
> To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff
> JSP-INTEREST".
> For digest: mailto [EMAIL PROTECTED] with body: "set
> JSP-INTEREST DIGEST".
>
> Some relevant archives, FAQs and Forums on JSPs can be found at:
>
>  http://java.sun.com/products/jsp
>  http://archives.java.sun.com/jsp-interest.html
>  http://forums.java.sun.com
>  http://www.jspinsider.com

===========================================================================
To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff JSP-INTEREST".
For digest: mailto [EMAIL PROTECTED] with body: "set JSP-INTEREST DIGEST".

Some relevant archives, FAQs and Forums on JSPs can be found at:

 http://java.sun.com/products/jsp
 http://archives.java.sun.com/jsp-interest.html
 http://forums.java.sun.com
 http://www.jspinsider.com

Reply via email to