struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Gainty" <mgai...@hotmail.com>
Subject Re: volatile vs ThreadLocal
Date Sat, 10 Feb 2007 00:25:25 GMT
I was not advocating volatile as a means of ensuring Thread safety
but more to the side effect of gaining performance

I am a strong personal advocate of synchronized  but some of the leads dont 
want to go that route
as it would be too intrusive to re-factor the existing base for the may 
method calls

(In other words Im in partial agreement)

Thanks for responding,

Martin Gainty

______________________________________________
Disclaimer and confidentiality note
Everything in this e-mail and any attachments relates to the official 
business of Sender. This transmission is of a confidential nature and Sender 
does not endorse distribution to any party other than intended recipient. 
Sender does not necessarily endorse content contained within this 
transmission.



>
>Sorry Martin,
>but using volatile will not make your code any thread-safer.
>Volatile (if implemented at all by your VM) will ensure that all
>threads sees the "central" copy  instead of their own copy. It won't
>prevent you from concurrent modification.
>
>Example:
>public MyThread{
>  private boolean running;
>  public void run(){
>     while(running){
>       ....
>     }
>  }
>
>  public void stopThread(){
>     running = false;
>  }
>
>  public static void test(){
>    MyThread t = new MyThread();
>    t.start();
>    try{
>        Thread.sleep(10000);
>   }catch(InterruptedException e){}
>    t.stopThread();
>  }
>
>In this example the variable "running" should be declared volatile to
>ensure that the MyThread-thread will actually get the modified copy
>and stop (however using  synchronized isRunning()/setRunning(boolean)
>methods is far better)
>
>For variables which are modified from many threads you can use
>synchronization or atomics (faster on sun).
>
>Btw, using ThreadLocals to avoid synchronization also seems weird :-)
>
>regards
>Leon
>
>
>On 2/10/07, Martin Gainty <mgainty@hotmail.com> wrote:
>>after discussing a few scenarios I came upon the idea of
>>
>>volatile is to be used as a default declarator (if only for speed..)
>>ThreadLocal is to be used for complex DataObjects whose size may 'grow' 
>>over
>>time
>>in this way ThreadLocal guarantees proper initialisation of the entire
>>object
>>Lighter (primarily primitive such as int,double) objects may live in 
>>memory
>>as volatile
>>
>>Thanks Dave--
>>
>>Martin Gainty
>>
>>______________________________________________
>>Disclaimer and confidentiality note
>>Everything in this e-mail and any attachments relates to the official
>>business of Sender. This transmission is of a confidential nature and 
>>Sender
>>does not endorse distribution to any party other than intended recipient.
>>Sender does not necessarily endorse content contained within this
>>transmission.
>>
>>
>>
>> >
>> >--- Martin Gainty <mgainty@hotmail.com> wrote:
>> > > In a StrutsApplication is it best to use delcare
>> > > variables with volatile OR ThreadLocal to ensure
>> > > variables are referenced in a ThreadSafe manner?
>> >
>> >Which variables, and what types?! (Note mild alarm.)
>> >Are you attempting to share data, or ensure that it
>> >*isn't* shared? Where are you accessing the variable?
>> >
>> >d.
>> >
>> >
>> >
>> >
>> >____________________________________________________________________________________
>> >Looking for earth-friendly autos?
>> >Browse Top Cars by "Green Rating" at Yahoo! Autos' Green Center.
>> >http://autos.yahoo.com/green_center/
>> >
>> >---------------------------------------------------------------------
>> >To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> >For additional commands, e-mail: user-help@struts.apache.org
>> >
>>
>>_________________________________________________________________
>>Valentine's Day -- Shop for gifts that spell L-O-V-E at MSN Shopping
>>http://shopping.msn.com/content/shp/?ctId=8323,ptnrid=37,ptnrdata=24095&tcode=wlmtagline
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>For additional commands, e-mail: user-help@struts.apache.org
>>
>>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>For additional commands, e-mail: user-help@struts.apache.org
>

_________________________________________________________________
Turn searches into helpful donations. Make your search count. 
http://click4thecause.live.com/search/charity/default.aspx?source=hmemtagline_donation&FORM=WLMTAG


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Mime
View raw message